使用する機会があったのでメモです。
ユーザーを確認
mysql> select user(), current_user();
+----------------+----------------+
| user() | current_user() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
※SELECT USER()は接続に使用されているユーザー名とホスト名を返し、SELECT CURRENT_USER()は現在のセッションのユーザー名とホスト名を返す。
権限の確認
mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, CREATE USER, EVENT ON *.* TO `root`@`localhost` WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
権限を与える方法
データベース全体への権限を付与
GRANT 権限種類 ON データベース名.* TO 'ユーザー名'@'ホスト名';
特定のテーブルへの権限を付与
GRANT 権限種類 ON データベース名.テーブル名 TO 'ユーザー名'@'ホスト名';
全てのデータベースへの権限を付与
GRANT 権限種類 ON *.* TO 'ユーザー名'@'ホスト名';
例:'root'@'localhost'に全てのデータベースへの全ての権限を付与する場合
mysql> GRANT ALL ON *.* TO 'root'@'localhost';