Amazon AWS RDS MySQL角色特权未级联

时间:2019-07-09 14:52:43

标签: mysql rds

我有一个MySQL 8.0.13的RDS实例,在该实例中我试图实现基于角色的权限,因此不必分别创建/更改每个用户。

这是我正在使用的代码...

GRANT ROLE_ADMIN ON *.* TO mymasteruser; -- Need to do this or line 5 doesn't work.
CREATE ROLE 'TEST_ROLE';
GRANT ALL PRIVILEGES ON test_data.* TO 'TEST_ROLE';
CREATE USER 'dev3'@'%' IDENTIFIED BY '$uper$ecretP@ssw0rd';
GRANT TEST_ROLE TO 'dev3'@'%';
FLUSH PRIVILEGES;

运行上面的代码时没有收到任何错误消息,但是当我尝试使用dev3登录到数据库时,我获得了对用户'dev3'@'%'到数据库'test_data'的访问被拒绝。 / p>

我跑步时

SHOW GRANTS FOR TEST_ROLE 

我明白了

GRANT USAGE ON *.* TO `TEST_ROLE`@`%`
GRANT ALL PRIVILEGES ON `test_data`.* TO `TEST_ROLE`@`%`

我跑步时

SHOW GRANTS FOR 'dev3'@'%'

我明白了

GRANT USAGE ON *.* TO `dev3`@`%`
GRANT `TEST_ROLE`@`%` TO `dev3`@`%`

在我看来,所有正确的权限都已到位,但我仍然被拒绝访问。

我可以像平常一样授予该用户个人访问权限,只是不通过角色。

我在做什么错了?

谢谢

1 个答案:

答案 0 :(得分:0)

经过研究,答案似乎是正确的

SET DEFAULT ROLE 'TEST_ROLE' TO 'dev3'@'%';