选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

REASSIGN OWNED

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

Synopsis

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。订阅虽然存储在共享系统目录中, 但属于特定数据库,只有在该数据库中执行REASSIGN OWNED时才会被重新分配。

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