在搜索ALTER
和GRANT
命令的示例时,我注意到有时会授予superuser
,但不会授予login
。
此外,事实证明,如果您对某个角色具有GRANT SELECT
特权,但对他们没有 LOGIN
特权,则他们将无法执行选择查询,这取决于登录。
那么 nologin 超级用户或实际上是 nologin 角色句号的用途是什么?将角色用作组是唯一的原因吗?
答案 0 :(得分:2)
角色即使无法登录也可以做两件事:
它可以拥有对象。
它可以具有其他成员角色,即它可以充当用户组。
据我所知,超级用户所有者仅与声明为SECURITY DEFINER
的函数有所不同。此类功能在功能所有者的上下文中运行,即具有超级用户特权。强大但危险。
成为超级用户角色的成员使您可以通过发出临时获得超级用户特权
SET ROLE the_su_role;
您可以通过以下方式成为普通用户
RESET ROLE;
如果您希望能够发出超级用户命令,但又不想让自己一直冒着使用超级用户的风险,这很有用,类似于su
和{{1} }在UNIX上的命令。