目的
- MySQLのユーザを作成して権限を設定する方法をまとめる
目的
- MySQLのユーザ一覧を表示する方法をまとめる
前提条件
- MySQLのrootユーザの認証パスワードがわかること。(MySQLのrootユーザのパスワードを失念してしまった方はこちら→Mac ローカル環境の MySQL 8.x のrootパスワードを忘れた時のリセット方法)
前提情報
-
筆者はMacに立てたMySQLで本記事の内容を検証している。(rootユーザのパスワード入力を求められたら入力しEnterを押下する。)
-
下記SQLを実行してMySQLのユーザ(ユーザ名: test パスワード: test0000)を予め作成した。
create user test@localhost identified by 'test0000';
詳細
-
下記コマンドを実行してターミナルからMySQLにログインする。(rootユーザのパスワード入力を求められたら入力しEnterを押下する。)
$ mysql -u root -p
-
下記SQLを実行してtestユーザの権限を確認する。(testユーザは作成直後であり、権限系の設定は何も行っていない。)
show grants for test@localhost;
-
下記のように表示された。これはグローバルの設定でなんの権限も無いことを表している。ログインする事ができるだけ。これだとtestユーザでログイン後に
show database;
すら実行権限がない。+------------------------------------------+ | Grants for test@localhost | +------------------------------------------+ | GRANT USAGE ON *.* TO `test`@`localhost` | +------------------------------------------+
すべての権限を付与
-
下記SQLを実行して権限を付与する。
grant all on *.* to test@localhost;
データベースの作成、テーブルの作成を行うことのできる権限の付与
-
下記SQLを実行して権限を付与する。
grant create on *.* to test@localhost;
指定データベース内だけテーブルの作成を行うことのできる権限の付与
-
下記SQLを実行して権限を付与する。
grant create on データベース名.* to test@localhost;
指定データベース内だけselect句を実行することのできる権限の付与
-
下記SQLを実行して権限を付与する。
grant select on データベース名.* to test@localhost;
権限を削除
-
下記SQLを実行して権限を削除する。
revoke 権限内容 from ユーザ名@ホスト;
-
たとえはlocalhostのtestユーザが持っている
create on *.*
の権限を削除したいときは下記SQLを実行する。revoke create on *.* from test@localhost;
その他
- 更に詳しい権限の設定は参考文献先に記載されている。