Skip to content

REASSIGN OWNED

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

语法

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撤销此类权限。

有关更多讨论,请参见第 22.4 节

兼容性

REASSIGN OWNED命令是PostgreSQL扩展。

另请参见

DROP OWNEDDROP ROLEALTER DATABASE