SQL COMMAND · 角色与权限
REASSIGN OWNED
更改一个数据库角色所拥有的数据库对象的所有权
REASSIGN角色与权限引入 10(基线)现存至 20 devel1 次语法变更
- 动词
REASSIGN- 对象
OWNED- 分组
- 角色与权限
- 引入版本
- 10(基线)
- 状态
- 现存
- 语法变更次数
- 1
- 手册小节数
- 5
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
语法概要
REASSIGN OWNED BY {old_role| CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] TO {new_role| CURRENT_ROLE | CURRENT_USER | SESSION_USER }
描述
REASSIGN OWNED指示系统将任何 old_roles所拥有的数据库对象的所有权更改为 new_role。
参数
old_role一个角色的名称。该角色在当前数据库中拥有的所有对象,以及该角色拥有的 所有共享对象(数据库、表空间)的所有权,都将被重新分配给
new_role。new_role将成为受影响对象新拥有者的角色名称。
注解
REASSIGN OWNED常用于为移除一个或多个角色做准备。 由于REASSIGN OWNED不会影响其他数据库中的对象, 因此通常需要在每个包含待移除角色所拥有对象的数据库中执行此命令。
执行 REASSIGN OWNED 要求你同时是源角色和目标角色的成员。
DROP OWNED命令提供了另一种选择, 它会直接删除一个或多个角色所拥有的全部数据库对象。
REASSIGN OWNED命令不会影响授予 old_roles的、在非其所拥有的对象上的任何权限。 同样,它也不会影响使用ALTER DEFAULT PRIVILEGES创建的默认权限。 如需撤销这类权限,请使用DROP OWNED。
更多讨论请见Section 21.4。
兼容性
REASSIGN OWNED命令是 PostgreSQL扩展。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 19← 18正文更新
正文更新PostgreSQL 14← 13语法变化
+ REASSIGN OWNED BY { old_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]+ TO { new_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER }− REASSIGN OWNED BY { old_role | CURRENT_USER | SESSION_USER } [, ...]− TO { new_role | CURRENT_USER | SESSION_USER }PostgreSQL 11← 10正文更新
正文更新
同组命令
| 命令 | 动词 | 对象 | 版本变动 | 最近变更 |
|---|---|---|---|---|
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 | — | |
| 移除一个数据库角色 | 现存 | |||