# 删除角色

DROP ROLE — 删除数据库角色

# 概要

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

# 描述

删除角色删除指定的角色。要删除超级用户角色,您自己必须是超级用户;要删除非超级用户角色,您必须拥有创造者特权。

如果角色在集群的任何数据库中仍然被引用,则不能删除该角色;如果是这样,将引发错误。在删除角色之前,您必须删除它拥有的所有对象(或重新分配它们的所有权)并撤销该角色已授予其他对象的任何特权。这重新分配拥有掉落拥有命令可用于此目的;看第 22.4 节进行更多讨论。

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

# 参数

如果存在

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

姓名

要删除的角色的名称。

# 笔记

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

# 例子

要删除角色:

DROP ROLE jonathan;

# 兼容性

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

# 也可以看看

创建角色,改变角色,设定角色