SQL COMMAND · 角色与权限
REASSIGN OWNED
更改一个数据库角色所拥有的数据库对象的所有权
更改一个数据库角色所拥有的数据库对象的所有权
REASSIGN角色与权限引入 8.2现存至 20 devel2 次语法变更
- 动词
REASSIGN- 对象
OWNED- 分组
- 角色与权限
- 引入版本
- 8.2
- 状态
- 现存
- 语法变更次数
- 2
- 手册小节数
- 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 不会影响其他数据库中的对象,因此通常需要在每个包含待移除角色所拥有对象的数据库中执行此命令。
你必须具备逐个执行 ALTER ... OWNER TO 所要求的全部权限。与 ALTER TABLE ... OWNER TO、ALTER TYPE ... OWNER TO 以及其他关系和类型的所有权变更不同,此命令不要求目标角色对对象所在的模式具有 CREATE 权限。
DROP OWNED 命令提供了另一种选择,它会直接删除一个或多个角色所拥有的全部数据库对象。
REASSIGN OWNED 命令不会影响授予
old_roles 的、在非其所拥有的对象上的任何权限。同样,它也不会影响使用 ALTER DEFAULT PRIVILEGES 创建的默认权限。如需撤销这类权限,请使用 DROP OWNED。
更多讨论请见第 21.4 节。
兼容性
REASSIGN OWNED 命令是
PostgreSQL 扩展。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 19← 18正文更新
正文更新PostgreSQL 17← 16正文更新
正文更新PostgreSQL 14← 13语法变化
+ REASSIGN OWNED BY { old_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]+ TO { new_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER }正文更新PostgreSQL 11← 10正文更新
正文更新PostgreSQL 9.6← 9.5正文更新
正文更新PostgreSQL 9.5← 9.4语法变化
+ REASSIGN OWNED BY { old_role | CURRENT_USER | SESSION_USER } [, ...]+ TO { new_role | CURRENT_USER | SESSION_USER }PostgreSQL 9.4← 9.3正文更新
正文更新PostgreSQL 9.3← 9.2正文更新
正文更新PostgreSQL 9.1← 9.0正文更新
正文更新PostgreSQL 9.0← 8.4正文更新
正文更新PostgreSQL 8.2← 8.1新增此命令
同组命令
| 命令 | 动词 | 对象 | 版本变动 | 最近变更 |
|---|---|---|---|---|
GRANT | GRANT | — | 1717 次 | |
| 定义访问权限 | 现存 | |||
REVOKE | REVOKE | — | 1719 次 | |
| 撤销访问权限 | 现存 | |||
ALTER DEFAULT PRIVILEGES | ALTER | DEFAULT PRIVILEGES | 186 次 | |
| 定义默认访问权限 | 现存 | |||
CREATE GROUP | CREATE | GROUP | 198 次 | |
| 定义一个新的数据库角色 | 现存 | |||
ALTER GROUP | ALTER | GROUP | 144 次 | |
| 更改角色名称或成员资格 | 现存 | |||
DROP GROUP | DROP | GROUP | 8.22 次 | |
| 移除一个数据库角色 | 现存 | |||
SECURITY LABEL | SECURITY | LABEL | 126 次 | |
| 定义或更改应用于对象的安全标签 | 现存 | |||
DROP OWNED | DROP | OWNED | 142 次 | |
| 移除一个数据库角色所拥有的数据库对象 | 现存 | |||
REASSIGN OWNED | REASSIGN | OWNED | 142 次 | |
| 更改一个数据库角色所拥有的数据库对象的所有权 | 现存 | |||
CREATE POLICY | CREATE | POLICY | 142 次 | |
| 为一个表定义一条新的行级安全策略 | 现存 | |||
ALTER POLICY | ALTER | POLICY | 141 次 | |
| 更改一条行级安全策略的定义 | 现存 | |||
DROP POLICY | DROP | POLICY | 9.61 次 | |
| 从一个表中移除一条行级安全策略 | 现存 | |||
CREATE ROLE | CREATE | ROLE | 177 次 | |
| 定义一个新的数据库角色 | 现存 | |||
ALTER ROLE | ALTER | ROLE | 1410 次 | |
| 更改数据库角色 | 现存 | |||
DROP ROLE | DROP | ROLE | 8.21 次 | |
| 移除一个数据库角色 | 现存 | |||
SET ROLE | SET | ROLE | 9.01 次 | |
| 设置当前会话的当前用户标识符 | 现存 | |||
SET SESSION AUTHORIZATION | SET | SESSION AUTHORIZATION | 9.02 次 | |
| 设置当前会话的会话用户标识符和当前用户标识符 | 现存 | |||
CREATE USER | CREATE | USER | 1912 次 | |
| 定义一个新的数据库角色 | 现存 | |||
ALTER USER | ALTER | USER | 1417 次 | |
| 更改数据库角色 | 现存 | |||
DROP USER | DROP | USER | 8.23 次 | |
| 移除一个数据库角色 | 现存 | |||