SQL COMMAND · 角色与权限
DROP ROLE
移除一个数据库角色
DROP角色与权限引入 10(基线)现存至 20 devel0 次语法变更
- 动词
DROP- 对象
ROLE- 分组
- 角色与权限
- 引入版本
- 10(基线)
- 状态
- 现存
- 语法变更次数
- 0
- 手册小节数
- 6
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
语法概要
DROP ROLE [ IF EXISTS ] name [, ...]
描述
DROP ROLE移除指定的角色。 要删除超级用户角色,你自己也必须是超级用户; 要删除非超级用户角色,你必须拥有CREATEROLE权限, 并且已被授予该角色上的ADMIN OPTION。
如果某角色仍在该集簇的任何数据库中被引用,则不能移除该角色; 若是如此将引发错误。在删除该角色之前,你必须删除它拥有的所有对象 (或者重新分配这些对象的拥有关系),并撤销该角色在其他对象上被授予的任何权限。 REASSIGN OWNED 和DROP OWNED 命令可用于此目的;更详细的讨论见Section 21.4。
不过,不必手工移除与该角色相关的角色成员资格; DROP ROLE会自动撤销目标角色在其他角色中的任何成员资格, 以及其他角色在目标角色中的任何成员资格。 其他角色不会被删除,也不会受到影响。
参数
IF EXISTS如果该角色不存在,则不要抛出错误。这种情况下会发出一个提示。
name要移除的角色名称。
注解
PostgreSQL包含一个程序dropuser, 它与此命令具有相同功能(实际上它就是调用此命令), 但可以从命令 shell 中运行。
示例
删除一个角色:
DROP ROLE jonathan;
兼容性
SQL 标准定义了DROP ROLE,但它一次只允许删除一个角色, 并且规定的权限要求也不同于PostgreSQL。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 14← 13正文更新
正文更新
同组命令
| 命令 | 动词 | 对象 | 版本变动 | 最近变更 |
|---|---|---|---|---|
GRANT | GRANT | — | 204 次 | |
| 定义访问权限 | 现存 | |||
REVOKE | REVOKE | — | 204 次 | |
| 撤销访问权限 | 现存 | |||
ALTER DEFAULT PRIVILEGES | ALTER | DEFAULT PRIVILEGES | 143 次 | |
| 定义默认访问权限 | 现存 | |||
CREATE GROUP | CREATE | GROUP | 192 次 | |
| 定义一个新的数据库角色 | 现存 | |||
ALTER GROUP | ALTER | GROUP | 141 次 | |
| 更改角色名称或成员资格 | 现存 | |||
DROP GROUP | DROP | GROUP | — | |
| 移除一个数据库角色 | 现存 | |||
SECURITY LABEL | SECURITY | LABEL | 122 次 | |
| 定义或更改应用于对象的安全标签 | 现存 | |||
DROP OWNED | DROP | OWNED | 141 次 | |
| 移除一个数据库角色所拥有的数据库对象 | 现存 | |||
REASSIGN OWNED | REASSIGN | OWNED | 141 次 | |
| 更改一个数据库角色所拥有的数据库对象的所有权 | 现存 | |||
CREATE POLICY | CREATE | POLICY | 141 次 | |
| 为一个表定义一条新的行级安全性策略 | 现存 | |||
ALTER POLICY | ALTER | POLICY | 141 次 | |
| 更改一条行级安全性策略的定义 | 现存 | |||
DROP POLICY | DROP | POLICY | — | |
| 从一个表中移除一条行级安全性策略 | 现存 | |||
CREATE ROLE | CREATE | ROLE | 142 次 | |
| 定义一个新的数据库角色 | 现存 | |||
ALTER ROLE | ALTER | ROLE | 142 次 | |
| 更改数据库角色 | 现存 | |||
DROP ROLE | DROP | ROLE | — | |
| 移除一个数据库角色 | 现存 | |||
SET ROLE | SET | ROLE | — | |
| 设置当前会话的当前用户标识符 | 现存 | |||
SET SESSION AUTHORIZATION | SET | SESSION AUTHORIZATION | — | |
| 设置当前会话的会话用户标识符和当前用户标识符 | 现存 | |||
CREATE USER | CREATE | USER | 192 次 | |
| 定义一个新的数据库角色 | 现存 | |||
ALTER USER | ALTER | USER | 142 次 | |
| 更改数据库角色 | 现存 | |||
DROP USER | DROP | USER | — | |
| 移除一个数据库角色 | 现存 | |||