MySQL におけるユーザー登録とアクセス権限の付与は、データベースのセキュリティと管理にとって非常に重要です。以下に、基本的な手順とその解説をします。
目次
🔑 ユーザー登録とアクセス権限の流れ
- ユーザー作成
- 権限の付与(GRANT)
- 変更の反映(FLUSH PRIVILEGES)※MySQL 8.0 以降は不要なことが多い
- 権限の確認
- ユーザー削除(必要に応じて)
🧑💻 1. ユーザーの作成
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
🔍 各項目の意味
'username'
:作成したいユーザー名'host'
:アクセス元('localhost'
や%
(任意のホスト))'password'
:ログイン用のパスワード
例:
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'securepass';
✅ 2. 権限の付与
GRANT 権限一覧 ON データベース名.テーブル名 TO 'username'@'host';
権限の種類(一部)
権限 | 説明 |
---|---|
ALL PRIVILEGES | すべての操作が可能 |
SELECT | データの読み取り |
INSERT | データの追加 |
UPDATE | データの更新 |
DELETE | データの削除 |
CREATE | テーブルなどの作成 |
DROP | テーブルなどの削除 |
例:
GRANT SELECT, INSERT, UPDATE ON sample_db.* TO 'user1'@'localhost';
これは、sample_db
データベース内のすべてのテーブルに対して、user1
に「読み取り・追加・更新」の権限を付与する例です。
🔁 3. 権限の反映(MySQL 5.x系で必要)
FLUSH PRIVILEGES;
MySQL 8.0 以降は、
CREATE USER
やGRANT
実行時に自動で反映されるため、通常は不要です。
🔎 4. 権限の確認
SHOW GRANTS FOR 'user1'@'localhost';
❌ 5. ユーザーの削除(不要になった場合)
DROP USER 'user1'@'localhost';
💡 補足:ホストの指定
'user1'@'localhost'
:ローカルからのみログイン可能'user1'@'%'
:すべてのホストからの接続を許可'user1'@'192.168.1.%'
:特定のネットワークからのみ許可
📌 まとめ
操作 | コマンド例 |
---|---|
ユーザー作成 | CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass'; |
権限付与 | GRANT SELECT ON db.* TO 'user'@'localhost'; |
権限確認 | SHOW GRANTS FOR 'user'@'localhost'; |
ユーザー削除 | DROP USER 'user'@'localhost'; |
必要なら、具体的なユースケースやセキュリティのベストプラクティス(例えば最小権限の原則など)についても説明できます。興味ありますか?