Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

DROP ROLE

DROP ROLE — 移除数据库角色

语法

DROP ROLE [ IF EXISTS ] name [, ...]

描述

DROP ROLE 移除指定的角(们)。要删除超级用户角色,您自己必须是超级用户;要删除非超级用户角色,您必须具有CREATEROLE 权限,并且已授予该角色。ADMIN OPTION

如果某个角色仍在集群的任何数据库中被引用,则无法将其删除;如果出现这种情况,将引发错误。在删除该角色之前,你必须删除它拥有所有对象(或重新分配它们的所有权),并撤销已授予该角色在其他对象上的任何权限。REASSIGN OWNEDDROP OWNED 命令可用于此目的;有关更多讨论,请参见 第 21.4 节

但是,不需要删除涉及该角色的角色成员;DROP ROLE 会自动撤销目标角色在其他角色中的任何成员资格,以及其他角色在目标角色中的成员资格。其他角色不会被删除或受到其他影响。

参数

IF EXISTS

如果该角色不存在,请不要抛出错误。在这种情况下,将发出通知。

name

要删除的角色的名称。

注释

PostgreSQL 包含与该命令具有相同功能的程序 dropuser(事实上,它调用了该命令),但可以使用命令 shell 从该程序运行。

示例

删除角色

DROP ROLE jonathan;

兼容性

SQL 标准定义了 DROP ROLE,但它一次只允许删除一个角色,并且它指定的权限要求与 PostgreSQL 使用的不同。

另请参见

CREATE ROLEALTER ROLESET ROLE