↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
历史版本。 PostgreSQL 13 已结束支持。 2025-11-13. 请参阅 当前版本手册.

DROP ROLE

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

大纲

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

描述

DROP ROLE 移除指定的角色。要删除超级用户角色,你自己也必须是超级用户;要删除非超级用户角色,必须拥有 CREATEROLE 权限。

如果某角色仍在该集簇的任何数据库中被引用,就不能移除它,否则会报错。在删除角色之前,必须删除它拥有的所有对象(或重新分配其拥有关系),并撤销该角色在其他对象上被授予的任何权限。REASSIGN OWNED 和 DROP OWNED 命令可用于此目的;更多讨论参见第 21.4 节。

不过,不必手工移除与该角色相关的角色成员资格;DROP ROLE 会自动撤销目标角色在其他角色中的任何成员资格,以及其他角色在目标角色中的任何成员资格。其他角色不会被删除,也不会受到影响。

参数

IF EXISTS

如果该角色不存在,则不要抛出错误。这种情况下会发出一个提示。

name

要移除的角色名称。

注解

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

示例

删除一个角色:

DROP ROLE jonathan;

兼容性

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

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.