有用户' test_user1'。 SET ROLE命令:
SET ROLE test_user1
返回错误:
ERROR: permission denied to set role "test_user2"
我无法找到如何授予SET ROLE的权限。
提前致谢。
答案 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中,角色可以是遗传的(INHERIT
或NOINHERIT
选项)。
如果它是继承的,那么GRANT
意味着您授予授予角色对被授权者角色的所有访问权。
如果未继承,则GRANT
授予使用SET ROLE
切换到该角色的权限。换句话说,GRANT
可以访问其他角色,INHERIT
可以确定该访问是否需要SET ROLE
命令才能生效。