MySQL/MariaDBのユーザー管理まとめ。作成・名前変更・削除・一覧確認
MySQL・MariaDBのユーザー管理に必要なSQLを、この記事1本にまとめて解説します。
- 一覧確認:
mysql.user - 作成:
create user - 名前変更:
rename user - 削除:
drop user
MySQLとMariaDBはどちらも同じ方法で操作できます。DBはインストールされている前提です。インストール方法はLinux・Windowsそれぞれの手順記事を参考にしてください。
ユーザー一覧の確認:mysql.user
ユーザー一覧は mysql.user テーブルで確認します。
select host, user from mysql.user;
MariaDB [(none)]> select host, user from mysql.user;
+-----------+---------+
| host | user |
+-----------+---------+
| localhost | root |
| 127.0.0.1 | root |
| ::1 | root |
| % | test001 |
+-----------+---------+
MySQL/MariaDBのユーザーは「ユーザー名+接続元ホスト」の組み合わせで管理されます。host が % のユーザーは任意のホストから接続できます。
なお、古いバージョン(MySQL 5.6以前・MariaDB 10.3以前)ではパスワードハッシュが password 列にありましたが、MySQL 5.7以降は authentication_string 列に格納されます。
mysql.user にどんな列があるかは show columns で確認できます。
show columns from mysql.user;
Select_priv や Insert_priv といった権限フラグ、max_connections などの接続制限がユーザーごとに格納されています。
ユーザー作成:create user
create user の基本構文は次のとおりです。
create user user_name identified by 'password';
Oracleとは違い、ユーザー名は大文字・小文字を区別するので注意してください。
以下が実行例です。作成後に一覧へ追加され、そのユーザーでログインできることを確認しています。
MariaDB [(none)]> create user testuser identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user, host from mysql.user;
+----------+-----------+
| user | host |
+----------+-----------+
| test001 | % |
| testuser | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+----------+-----------+
[test001@test-server ~]$ mysql -u testuser -ppassword
Welcome to the MariaDB monitor. Commands end with ; or \g.
接続元ホストを限定する場合は 'user_name'@'host' の形式で指定します。
create user 'testuser'@'localhost' identified by 'password';
ユーザー名の変更:rename user
rename user の基本構文は次のとおりです。
rename user old_user_name to new_user_name;
MariaDB [(none)]> rename user testuser to testuser001;
Query OK, 0 rows affected (0.00 sec)
カンマ区切りで複数ユーザーをまとめて変更することもできます。
rename user old_user_name to new_user_name [, old_user_name to new_user_name] ...
MariaDB [(none)]> rename user testuser001 to TESTUSER001, testuser002 to TESTUSER002;
Query OK, 0 rows affected (0.00 sec)
ユーザーの削除:drop user
drop user の基本構文は次のとおりです。
drop user user_name;
MariaDB [(none)]> drop user testuser;
Query OK, 0 rows affected (0.00 sec)
こちらもカンマ区切りで複数ユーザーをまとめて削除できます。
drop user user_name [, user_name ...];
MariaDB [(none)]> drop user testuser001, testuser002;
Query OK, 0 rows affected (0.00 sec)
削除対象のユーザー名も大文字・小文字を区別するため、事前に mysql.user で正確なユーザー名と接続元ホストを確認してから削除しましょう。
まとめ
| 操作 | SQL | 注意点 |
|---|---|---|
| 一覧確認 | select host, user from mysql.user | ユーザーは「名前+ホスト」の組で管理 |
| 作成 | create user ~ identified by '~' | 大文字・小文字を区別する |
| 名前変更 | rename user ~ to ~ | カンマ区切りで複数まとめて変更可 |
| 削除 | drop user ~ | カンマ区切りで複数まとめて削除可 |
サービスの起動・停止方法はMySQL/MariaDBとサービス/サーバの起動・停止方法を参考にしてください。