【MySQL】ユーザーの基本操作 - 作成・一覧表示・情報表示・変更・削除

【MySQL】ユーザーの基本操作 - 作成・一覧表示・情報表示・変更・削除

MySQLのユーザーの基本操作を解説します。

ユーザー

ユーザーはMySQLを操作するために必要です。 初期はrootユーザーのみですが、任意のユーザーを作成することができます。

作成(CREATE USER

ユーザーを作成するにはCREATE USERを使います。

基本構文

CREATE USER ユーザー名@ホスト名 IDENTIFIED BY パスワード

ユーザーはユーザー名とホスト名をアットマーク(@)で繋げて記述します。
ホスト名は接続元のIPアドレスやlocalhostを指定できます。

サンプル

mysql> CREATE USER 'tester'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.08 sec)

作成したユーザーでMySQLに接続するにはmysqlコマンドの-uオプションで指定します。

mysql -u tester -p

一覧表示(mysql.user

ユーザーの一覧表示はmysql.userテーブルから取得します。

基本構文

SELECT カラム FROM mysql.user

サンプル

mysql> SELECT Host, User FROM mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
| localhost | tester           |
+-----------+------------------+
5 rows in set (0.00 sec)

作成クエリ(SHOW CREATE USER

ユーザーを作成するクエリを表示するにはSHOW CREATE USERを使います。

基本構文

SHOW CREATE USER ユーザー

サンプル

mysql> SHOW CREATE USER tester@localhost;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER for tester@localhost                                                                                                                                                                                                                                                                   |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER `tester`@`localhost` IDENTIFIED WITH 'caching_sha2_password' AS '$A$005$I<	PT=cowZ/i .r`hQ16fn8i/YtmQLmDOQzXYp0UjxhEeTXW1aR6KMU4QTK9' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

権限確認(SHOW GRANTS FOR

ユーザーの権限確認はSHOW GRANTS FORを使います。

基本構文

SHOW GRANTS FOR ユーザー

サンプル

mysql> SHOW GRANTS FOR tester@localhost;
+--------------------------------------------+
| Grants for tester@localhost                |
+--------------------------------------------+
| GRANT USAGE ON *.* TO `tester`@`localhost` |
+--------------------------------------------+
1 row in set (0.00 sec)

ユーザー名変更(RENAME USER

ユーザー名の変更はRENAME USERを使います。

基本構文

RENAME USER 現在ユーザー名 TO 新しいユーザー名

サンプル

mysql> SELECT Host, User FROM mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
| localhost | tester           |
+-----------+------------------+
5 rows in set (0.01 sec)

mysql> RENAME USER tester@localhost TO guest@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT Host, User FROM mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | guest            |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

削除(DROP USER

ユーザーの削除はDROP USERを使います。

基本構文

DROP USER ユーザー

サンプル

mysql> SELECT Host, User FROM mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | guest            |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

mysql> DROP USER guest@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT Host, User FROM mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)