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 }

描述

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 来撤销这类特权。

更多讨论请参见 Section 21.4。

兼容性

REASSIGN OWNED 命令是一个 PostgreSQL 扩展。

另请参阅

DROP OWNED, DROP ROLE, ALTER DATABASE