历史版本。 PostgreSQL 13 已结束支持。 2025-11-13. 请参阅 当前版本手册.
REASSIGN OWNED
REASSIGN OWNED — 更改一个数据库角色所拥有的数据库对象的所有权
大纲
REASSIGN OWNED BY { old_role | CURRENT_USER | SESSION_USER } [, ...]
TO { new_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 扩展。