Postgresql:如何授予设置角色的权限?

Postgresql: How to grant permission for set role?

有用户'test_user1'。设置角色命令:

SET ROLE test_user1

returns 错误:

ERROR:  permission denied to set role "test_user2"

我找不到如何授予 SET ROLE 权限。

提前致谢。

错误信息

ERROR: permission denied to set role "test_user2"

暗示命令是

test_user1> SET ROLE test_user2;

,但不是你写的 SET ROLE test_user1

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

test_user2> grant test_user2 to test_user1;

补充 Egor 的回答,在 PostgreSQL 中,角色可以继承或不继承(角色上的 INHERITNOINHERIT 选项)。

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

如果不是继承,则GRANT允许使用SET ROLE切换到那个角色。换句话说,GRANT 授予对其他角色的访问权限,而 INHERIT 确定该访问权限是否需要 SET ROLE 命令才能工作。