9.3 9.4 9.5 9.6 10 11 12 13 14 Current(15)
阿里云PostgreSQL 问题报告 纠错本页面

DROP ROLE

名称

DROP ROLE -- 移除一个数据库角色

大纲

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

描述

DROP ROLE移除指定的角色。要删除一个 超级用户角色,你必须自己就是一个超级用户。要删除一个非超级用户角 色,你必须具有CREATEROLE特权。

如果一个角色仍然被集簇中任何数据库中引用,它就不能被移除。 如果尝试移除将会抛出一个错误。在删除该角色前,你必须删除 (或者重新分配所有权)它所拥有的所有对象并且收回该角色授予给其他对象的权限。 REASSIGN OWNEDDROP OWNED 命令可以用于这个目的;参阅第 20.4 节获取更多讨论。

不过,没有必要移除涉及该角色的角色成员关系。 DROP ROLE会自动收回目标角色在其他角色中的成员 关系,以及其他角色在目标角色中的成员关系。其他角色不会被删除也不 会被影响。

参数

IF EXISTS

如果该角色不存在则不要抛出一个错误,而是发出一个提示。

name

要移除的角色的名称。

注解

PostgreSQL包括一个程序dropuser具有和这个命令完全相同的功能(事实 上它会调用这个命令),但是该程序可以从 shell 运行。

示例

要删除一个角色:

DROP ROLE jonathan;

兼容性

SQL 标准定义了DROP ROLE, 但是它只允许一次删除一个角色并且它指定了和 PostgreSQL不同的特权需求。

另见

CREATE ROLE, ALTER ROLE, SET ROLE
<
/BODY >