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 }

Description

REASSIGN OWNED 指示系统将由 old_roles 中的任何一个 new_role 拥有的数据库对象的归属更改为 new_role

Parameters

  • old_role

    • 角色的名称。此角色拥有的当前数据库中所有对象的归属以及所有共享对象(数据库、表空间)的归属都将重新分配给 new_role

  • new_role

    • 将成为受影响对象的新所有者的角色的名称。

Notes

REASSIGN OWNED 通常用于准备移除一个或多个角色。由于 REASSIGN OWNED 不会影响其他数据库中的对象,所以通常有必要在包含要移除的角色拥有的对象的每个数据库中执行此命令。

REASSIGN OWNED 需要源角色和目标角色中都有成员身份。

DROP OWNED 命令是一个替代命令,它仅删除一个或多个角色拥有的所有数据库对象。

REASSIGN OWNED 命令不会影响授予角色 old_roles 的权限,这是因为他们不拥有这些权限。同样地,它不会影响使用 ALTER DEFAULT PRIVILEGES 创建的默认权限。使用 DROP OWNED 撤销此类权限。

有关更多讨论,请参阅 Section 22.4

Compatibility

REASSIGN OWNED 命令是一个 PostgreSQL 扩展。