Postgresql:如何授予set role权限?

时间:2015-10-30 11:26:41

标签: postgresql role grant

有用户' test_user1'。 SET ROLE命令:

SET ROLE test_user1

返回错误:

ERROR:  permission denied to set role "test_user2"

我无法找到如何授予SET ROLE的权限。

提前致谢。

2 个答案:

答案 0 :(得分:2)

错误消息

  

错误:拒绝设置角色“test_user2”的权限

暗示命令是

test_user1> SET ROLE test_user2;

,但不是你写的SET ROLE test_user1

如果您尝试为用户 test_user1 设置角色 test_user2 ,请将其授予:

test_user2> grant test_user2 to test_user1;

答案 1 :(得分:1)

补充Egor的答案,在PostgreSQL中,角色可以是遗传的(INHERITNOINHERIT选项)。

如果它是继承的,那么GRANT意味着您授予授予角色对被授权者角色的所有访问权。

如果未继承,则GRANT授予使用SET ROLE切换到该角色的权限。换句话说,GRANT可以访问其他角色,INHERIT可以确定该访问是否需要SET ROLE命令才能生效。