【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)