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
来撤销此类权限。
有关更多讨论,请参见第 21.4 节。
REASSIGN OWNED
命令是一个 PostgreSQL 扩展。