超级用户nologin角色?

时间:2019-03-11 10:07:49

标签: postgresql database-permissions superuser

在搜索ALTERGRANT命令的示例时,我注意到有时会授予superuser,但不会授予login

此外,事实证明,如果您对某个角色具有GRANT SELECT特权,但对他们没有 LOGIN特权,则他们将无法执行选择查询,这取决于登录。

那么 nologin 超级用户或实际上是 nologin 角色句号的用途是什么?将角色用作组是唯一的原因吗?

1 个答案:

答案 0 :(得分:2)

角色即使无法登录也可以做两件事:

  • 它可以拥有对象。

  • 它可以具有其他成员角色,即它可以充当用户组。

据我所知,超级用户所有者仅与声明为SECURITY DEFINER的函数有所不同。此类功能在功能所有者的上下文中运行,即具有超级用户特权。强大但危险。

成为超级用户角色的成员使您可以通过发出临时获得超级用户特权

SET ROLE the_su_role;

您可以通过以下方式成为普通用户

RESET ROLE;

如果您希望能够发出超级用户命令,但又不想让自己一直冒着使用超级用户的风险,这很有用,类似于su和{{1} }在UNIX上的命令。