ローカルアクセス用MySQLユーザーの構築
サーバーにroot権限を持つアカウントで接続し、"taro"という識別子を持つ新しいアカウントを定義します。以下のコマンドは、ローカルマシンからのみアクセス可能なユーザーを作成します。
CREATE USER 'taro'@'localhost' IDENTIFIED BY 'secure_password';
次に、特定のデータベースに対して権限を割り当てます。以下の構文により、"taro"アカウントが"sample_db"データベースに対してすべての操作権限を持つようになります。
GRANT ALL PRIVILEGES ON sample_db.* TO 'taro'@'localhost';
ユーザー作成と権限設定完了後、権限情報を再読み込みする必要があります。
FLUSH PRIVILEGES;
リモート接続対応ユーザーの設定
リモートシステムからの接続を許可するには、対象ホストを明確に指定する必要があります。特定のIPアドレスまたはワイルドカードを使用して接続元を制御できます。
CREATE USER 'taro'@'192.168.1.100' IDENTIFIED BY 'secure_password';
CREATE USER 'taro'@'%' IDENTIFIED BY 'secure_password';
FLUSH PRIVILEGES;
MySQLにおける権限種別の概要
一般的に使用される権限のカテゴリ:
ALL PRIVILEGES - すべての権限を付与
CREATE - データベースやテーブルの作成を許可
DROP - データベースやテーブルの削除を許可
DELETE - テーブルレコードの削除を許可
ALTER - テーブル構造変更を許可
INSERT - レコード追加を許可
SELECT - データ参照操作を許可
UPDATE - レコード更新を許可
EXECUTE - ストアドプロシージャ実行を許可
FILE - サーバーファイルアクセスを許可
GRANT OPTION - 権限付与機能を許可
複数の特定権限をコンマ区切りで指定することも可能です。例えば、"sample_db"に対するCREATE、DELETE、INSERT、UPDATE操作のみを許可する場合:
GRANT CREATE,DELETE,INSERT,UPDATE ON sample_db.* TO 'taro'@'localhost';
FLUSH PRIVILEGES;
既存権限の取り消し処理
REVOKE命令を使用して、特定の権限を取り消すことができます。例として、"sample_db"データベースから'taro'@'localhost'アカウントのDELETE権限を剥奪します。
REVOKE DELETE ON sample_db.* FROM 'taro'@'localhost';
FLUSH PRIVILEGES;
ユーザー情報の完全削除
DROP USER命令により、MySQLシステムからアカウント情報を完全に削除します。'taro'@'localhost'アカウントを削除する手順:
DROP USER 'taro'@'localhost';
FLUSH PRIVILEGES;