Skip to content

DROP ROLE

DROP ROLE — 删除数据库角色

语法

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

描述

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

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

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

参数

IF EXISTS

如果角色不存在,则不引发错误。在这种情况下,会发出通知。

name

要删除的角色的名称。

注释

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

示例

要删除角色

DROP ROLE jonathan;

兼容性

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

另请参阅

CREATE ROLEALTER ROLESET ROLE