MySQLではユーザーを作成した後に権限を付与しなければ、そのユーザーは何も出来ません。
今回はMySQLユーザーへの権限付与方法と付与された権限の確認方法を紹介します。
MySQLユーザーへの権限付与方法
まずMySQLのrootユーザーでログインします。
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.29 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
以下のSQLで権限を付与することが出来ます。
GRANT <権限名> ON <対象データベース名>.<対象テーブル名> TO <ユーザー名>@<接続元IP>;
今回はサンプルとして以下の権限を与えてみます。
- 権限名: ALL PRIVILEGES(GRANT OPTIONを除く全ての権限が付与されます)
- 対象データベース名: dekirudb
- 対象テーブル名: *(ワイルドカードで全てのテーブルを意味します)
- ユーザー名: dekiruengineer
- 接続元IP: localhost
mysql> GRANT ALL PRIVILEGES ON dekirudb.* TO dekiruengineer@localhost;
Query OK, 0 rows affected (0.01 sec)
ユーザーの作成方法については以下の記事を参照してください。
MySQLユーザーへの権限確認方法
ユーザーにどんな権限が付与されているかは以下のSQLで確認することが出来ます。
SHOW GRANTS FOR <ユーザ名>@<接続元IP>;
mysql> SHOW GRANTS FOR dekiruengineer@localhost;
+----------------------------------------------------------------------+
| Grants for dekiruengineer@localhost |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dekiruengineer'@'localhost' |
| GRANT ALL PRIVILEGES ON `dekirudb`.* TO 'dekiruengineer'@'localhost' |
+----------------------------------------------------------------------+
2 rows in set (0.00 sec)
先程付与した権限を確認することが出来ました。