インフラ

Mysqlユーザ管理でよく使うSQL ユーザ作成削除のチートシート

こんにちは、ちゃりおです。

Mysqlのユーザ作成たまにやるのですが、やり方忘れがちなので
使うSQLをまとめてみます。

Mysqlユーザ作成でよく使うSQL

検証用Mysql

DockerでMysqlたてて試しました。

$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 13306:3306 mysql:5.7
$ mysql -u root -p -h 127.0.0.1 -P 13306

ユーザ確認 SELECT user, host FROM user;

まずは既存のユーザの確認です。

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

ユーザの作成 CREATE USER ‘<ユーザ名>’@'<ホスト名>’ IDENTIFIED BY ‘<パスワード>’;

ユーザ名とホスト名でユーザを作成できます。

mysql> CREATE USER 'test'@'192.168.%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

ホスト名は、「192.168.%」のように指定できます。この場合は、192.168..からのみ接続できます。
ホスト名が変われば別ユーザという扱いになります。

ユーザの削除 DROP USER ‘ユーザ名’@’ホスト名’;

ユーザの削除です。カンマで句切れば、複数指定も可能です。

mysql> DROP USER 'test'@'192.168.%';
Query OK, 0 rows affected (0.00 sec)

ユーザの権限確認 SHOW GRANTS for ‘<ユーザ名>’@'<ホスト名>’;

ユーザの権限を確認できます。
ユーザ作成しただけでは、権限がないため権限の付与も別途行います。

mysql> SHOW GRANTS for 'test'@'192.168.%'
+-------------------------------------------+
| Grants for test2@192.168.%                |
+-------------------------------------------+
| GRANT USAGE ON *.* TO 'test2'@'192.168.%' |
+-------------------------------------------+
1 row in set (0.00 sec)

ユーザに特定DBの権限付与 GRANT ALL ON .* to ‘<ユーザ名>’@'<ホスト名>’;

特定DBのみ操作可能な権限など、細かく設定できます。

mysql> SHOW GRANTS for 'test'@'192.168.%';
+--------------------------------------------------------+
| Grants for test@192.168.%                              |
+--------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'192.168.%'               |
| GRANT ALL PRIVILEGES ON `hoge`.* TO 'test'@'192.168.%' |
+--------------------------------------------------------+
2 rows in set (0.00 sec)

まとめ

今回は、Mysqlのユーザ関連の操作についてでした。
頻度高くやることでもないので、やり方を忘れがちですが作業ミスの影響が大きいので慎重に行いたいです。

Amazonで「Mysql」の本をみてみる!!

楽天で「Mysql」の本をみてみる!!

DMS Aurora 移行
DMSでRDS Mysql5.7をAurora Mysql5.7互換に移行してみるこんにちは、ちゃりおです。 Aurora移行を検証してみました。 Aurora移行の方法としては、RDSでAuroraリードレプリカ...
DockerでLAMP環境を作ったら、PDO接続できなくてハマった件DockerでLAMP環境環境作ったら、phpのpdoからデータベースに接続できずハマった件です。 DockerにPDOがインストールできていない。 次は、以下のエラーではまりました。 ERROR:SQLSTATE[HY000] [2002] No such file or directory...
DMS Aurora 移行
DMSでRDS Mysql5.7をAurora Mysql5.7互換に移行してみるこんにちは、ちゃりおです。 Aurora移行を検証してみました。 Aurora移行の方法としては、RDSでAuroraリードレプリカ...