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

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

Wiki / SQL 命令

DROP ROLE

移除一个数据库角色

英文手册覆盖始于 PostgreSQL 6.4. 来源历史与运行验证各自保留独立版本边界。

当前阅读 PG 18·选择有来源记录的版本

anchor
SQL-DROPROLE
file
sql-droprole.html
lang
en
name
DROP ROLE
purpose
remove a database role
purpose zh
未知
sections same as
未知
slug
18
synopsis html
DROP ROLE [ IF EXISTS ] <em class="replaceable"><code>name</code></em> [, ...]
synopsis text
DROP ROLE [ IF EXISTS ] name [, ...]

语法

DROP ROLE [ IF EXISTS ] name [, ...]
语法图

从左向右阅读;分支表示选择,旁路表示可选,循环表示重复。点击带下划线的参数可打开对应规则。

DROP ROLE IF EXISTS name ,

版本定义 PG 18

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

描述

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

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

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

参数

IF EXISTS

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

name

要移除的角色名称。

注解

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

示例

删除一个角色:

DROP ROLE jonathan;

兼容性

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

另见

CREATE ROLE, ALTER ROLE, SET ROLE

比较版本

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · a709ab85

正文语言: zh-Hans · 1b5ca64c