↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / SQL 命令 / 角色与权限

SQL COMMAND · 角色与权限

REASSIGN OWNED

更改一个数据库角色所拥有的数据库对象的所有权

更改一个数据库角色所拥有的数据库对象的所有权

REASSIGN角色与权限引入 8.2现存至 20 devel2 次语法变更

动词
REASSIGN
对象
OWNED
引入版本
8.2
状态
现存
语法变更次数
2
手册小节数
5

本站手册 · 18官方文档 ↗

版本轨迹

相对 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 BY { old_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]
               TO { new_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

PostgreSQL 18 手册 · 查看完整参考页

描述

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 扩展。

另见

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 19← 18正文更新

    正文更新
  2. PostgreSQL 17← 16正文更新

    正文更新
  3. PostgreSQL 14← 13语法变化

    + REASSIGN OWNED BY { old_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]+ TO { new_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER }正文更新
  4. PostgreSQL 11← 10正文更新

    正文更新
  5. PostgreSQL 9.6← 9.5正文更新

    正文更新
  6. PostgreSQL 9.5← 9.4语法变化

    + REASSIGN OWNED BY { old_role | CURRENT_USER | SESSION_USER } [, ...]+ TO { new_role | CURRENT_USER | SESSION_USER }
  7. PostgreSQL 9.4← 9.3正文更新

    正文更新
  8. PostgreSQL 9.3← 9.2正文更新

    正文更新
  9. PostgreSQL 9.1← 9.0正文更新

    正文更新
  10. PostgreSQL 9.0← 8.4正文更新

    正文更新
  11. PostgreSQL 8.2← 8.1新增此命令

同组命令

命令动词对象版本变动最近变更
ROLES & PRIVILEGES角色与权限20 条↑
GRANTGRANT— 1717 次
定义访问权限现存
REVOKEREVOKE— 1719 次
撤销访问权限现存
ALTER DEFAULT PRIVILEGESALTERDEFAULT PRIVILEGES 186 次
定义默认访问权限现存
CREATE GROUPCREATEGROUP 198 次
定义一个新的数据库角色现存
ALTER GROUPALTERGROUP 144 次
更改角色名称或成员资格现存
DROP GROUPDROPGROUP 8.22 次
移除一个数据库角色现存
SECURITY LABELSECURITYLABEL 126 次
定义或更改应用于对象的安全标签现存
DROP OWNEDDROPOWNED 142 次
移除一个数据库角色所拥有的数据库对象现存
REASSIGN OWNEDREASSIGNOWNED 142 次
更改一个数据库角色所拥有的数据库对象的所有权现存
CREATE POLICYCREATEPOLICY 142 次
为一个表定义一条新的行级安全策略现存
ALTER POLICYALTERPOLICY 141 次
更改一条行级安全策略的定义现存
DROP POLICYDROPPOLICY 9.61 次
从一个表中移除一条行级安全策略现存
CREATE ROLECREATEROLE 177 次
定义一个新的数据库角色现存
ALTER ROLEALTERROLE 1410 次
更改数据库角色现存
DROP ROLEDROPROLE 8.21 次
移除一个数据库角色现存
SET ROLESETROLE 9.01 次
设置当前会话的当前用户标识符现存
SET SESSION AUTHORIZATIONSETSESSION AUTHORIZATION 9.02 次
设置当前会话的会话用户标识符和当前用户标识符现存
CREATE USERCREATEUSER 1912 次
定义一个新的数据库角色现存
ALTER USERALTERUSER 1417 次
更改数据库角色现存
DROP USERDROPUSER 8.23 次
移除一个数据库角色现存