TL;DR
mysql> CREATE USER hoge@xxx.xxx.xxx.xxx IDENTIFIED BY 'password';
mysql> GRANT hoge_role TO hoge@xxx.xxx.xxx.xxx;
mysql> ALTER USER hoge@xxx.xxx.xxx.xxx DEFAULT ROLE hoge_role;
と
mysql> CREATE USER hoge@xxx.xxx.xxx.xxx IDENTIFIED BY 'password' DEFAULT ROLE hoge_role;
は同じ状態になる。
当たり前といえば当たり前なんだけど、ちょっと感動したのでメモ。
当たり前といえば当たり前なんだけど、ちょっと感動したのでメモ。
MySQL 8.0で追加されたROLEの話は↓の記事。
ロールを作ってから
- ユーザー作る
- ロールを許可する
- デフォルトロール設定する
でやらないといけないのかなと思ってたら一発で指定できた。
5.7とそれ以前
mysql> CREATE USER hoge@xxx.xxx.xxx.xxx IDENTIFIED BY 'password';
mysql> GRANT ALL ON hogedb.* TO hoge@xxx.xxx.xxx.xxx;
mysql> GRANT ALL ON fugadb.* TO hoge@xxx.xxx.xxx.xxx;
mysql> CREATE USER hoge@xxx.xxx.xxx.yyy IDENTIFIED BY 'password';
mysql> GRANT ALL ON hogedb.* TO hoge@xxx.xxx.xxx.yyy;
mysql> GRANT ALL ON fugadb.* TO hoge@xxx.xxx.xxx.yyy;
- APサーバーが増えるたびに
CREATE USER
+GRANT
* スキーマ数がめんどい- スキーマが増減した時とか死にたくなる
- そして
mysql.db
の直接変更に手を出す…
- そして
- スキーマが増減した時とか死にたくなる
- 「おとなしく
hoge@xxx.xxx.%
にしたらいいのでは?」「それな」
8.0
mysql> CREATE ROLE hoge_role;
mysql> GRANT ALL ON hogedb.* TO hoge_role;
mysql> GRANT ALL ON fugadb.* TO hoge_role;
mysql> CREATE USER hoge@xxx.xxx.xxx.xxx IDENTIFIED BY 'password' DEFAULT ROLE hoge_role;
mysql> CREATE USER hoge@xxx.xxx.xxx.yyy IDENTIFIED BY 'password' DEFAULT ROLE hoge_role;
- 楽だ…
【2020/07/30 20:23】
ただし残念ながらこんなバグがあった…8.0.17とそれ以前を使っている場合は注意。。
0 件のコメント :
コメントを投稿