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

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

MySQLのユーザーの基本操作について解説します。

検証環境

ユーザー

MySQLにログインするにはユーザーが必要です。

初期はrootユーザーのみですが、任意のユーザーを作成することができます。

作成(CREATE USER

ユーザーを作成するにはCREATE USER文を使用します。

基本構文

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

ユーザーはユーザー名とホスト名をアットマーク(@)で繋げて記述します。

ホスト名は接続元のIPアドレスやlocalhostを指定できます。

サンプル

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

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

$ mysql -u tester -p

一覧表示(mysql.user

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

基本構文

SELECT カラム FROM mysql.user

サンプル

___ih_hl_start
mysql> SELECT Host, User FROM mysql.user;
___ih_hl_end
+-----------+------------------+
| 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 ユーザー

サンプル

___ih_hl_start
mysql> SHOW CREATE USER tester@localhost;
___ih_hl_end
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER for tester@localhost                                                                                                                                                                                                                                                                   |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER `tester`@`localhost` IDENTIFIED WITH 'caching_sha2_password' AS 'XXXXXXXXXXXXXXXX' 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 ユーザー

サンプル

___ih_hl_start
mysql> SHOW GRANTS FOR tester@localhost;
___ih_hl_end
+--------------------------------------------+
| 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)

___ih_hl_start
mysql> RENAME USER tester@localhost TO guest@localhost;
___ih_hl_end
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)

___ih_hl_start
mysql> DROP USER guest@localhost;
___ih_hl_end
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)