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