ユーザ権限の確認・追加

  • 360
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

しょっちゅう忘れるのでメモ。

mysqlに切り替え

USE mysql

登録されているユーザを確認

SELECT user, host FROM user;

権限を表示

SHOW GRANTS for 'hoge'@'%';

ユーザを作成

CREATE USER user_name;
CREATE USER user_name IDENTIFIED BY [PASSWORD] 'password';

※ユーザ指定の書式例
user_name@host_name

※ワイルドカードをホストに使うときはシングルクォートでくくる
user_name@'%'
'username'@'192.168.128.%'

権限付与

GRANT ALL PRIVILEGES ON `DB名`.テーブル TO 'ユーザ名'@'ホスト名';
GRANT SELECT,UPDATE,INSERT,DELETE ON `DB名`.テーブル TO 'ユーザ名'@'ホスト名';

など

権限の反映

FLUSH PRIVILEGES;

※ご指摘いただき、公式ドキュメントを確認したところ、下記のような記載がありましたので、
この手順で権限を付与した場合、FLUSH PRIVILEGES;は実行する必要が無いようです。

GRANT, REVOKE, or SET PASSWORD などのステートメントを使用して、間接的に権限テーブルを変更する場合は、サーバがこれらの変更を認識し、その変更があった直後に権限テーブルをメモリへリロードします。

INSERT、UPDATE、DELETE などのステートメントを使用して、直接に権限テーブルを変更する場合は、サーバを再起動するか、またはテーブルのリロードを行なうまでその権限チェックは施行しません。手動で権限テーブルをリロードするには、FLUSH PRIVILEGES ステートメントを発行するか、mysqladmin flush-privileges または mysqladmin reload コマンドを実行します。