MySQL8にしたら、GRANT
ができませんでした。
8ではユーザー作成と権限付与が同時にできないらしいので、先にCREATE USER
してからGRANT
します。
(普通は先にユーザー作成すんのが筋だろってだろってことみたい)
mysql8
CREATE USER myuser@'%' IDENTIFIED BY 'password';
GRANT DELETE,INSERT,SELECT,UPDATE ON mydb.* TO myuser@'%';
FLUSH PRIVILEGES;
追記(2020/12/28)
ロールモデルも対応してるので、最近ちゃんとロールを定義するようにしてます。
mysql8
-- ロール作成
CREATE ROLE 'webadmin';
-- ロールに権限付与
GRANT DELETE,INSERT,SELECT,UPDATE ON mydb.* TO 'webadmin';
-- ユーザー作成
CREATE USER myuser@'%' IDENTIFIED BY 'password';
-- ユーザーにロール権限を付与
GRANT 'webadmin' to myuser@'%';
-- デフォルトロールのセット
SET DEFAULT ROLE 'webadmin' TO 'myuser'@'%';
FLUSH PRIVILEGES;
複数のロールを付与した場合はデフォルトロールが使用されます。
SET ROLE
で切り替え可能。
mysql8
SET ROLE 'webadmin';