[MySQL] 権限の複製

他のDBのユーザーの権限を複製したいとき、SHOW GRANTS 構文を使えば楽できる。これ良いな。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.7.5.22 SHOW GRANTS 構文

例えばhogeというホストのejiユーザーに与えられている権限と同じ権限を付与するためのSQLを取得したかったら、以下のSQLを投げれば良い。パスワードは暗号化されているので、適切なものに置き換えれば良い。

mysql> SHOW GRANTS FOR 'eji'@'hoge';
+---------------------------------------------------------------------------------+
| Grants for eji@hoge                                                                                                        |
+---------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'eji'@'hoge' IDENTIFIED BY PASSWORD '...' WITH GRANT OPTION |
+---------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

本番環境のDBのユーザーと同じユーザーを開発環境のDBに作りたいときにとっても役に立った。

MySQLはまだよく分からん機能があるな。