============== REASSIGN OWNED ============== .. container:: refentry :name: SQL-REASSIGN-OWNED .. container:: titlepage .. container:: refnamediv .. rubric:: REASSIGN OWNED :name: reassign-owned REASSIGN OWNED — 更改一个数据库角色拥有的数据库对象的拥有关系 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis REASSIGN OWNED BY { old_role | CURRENT_USER | SESSION_USER } [, ...] TO { new_role | CURRENT_USER | SESSION_USER } .. container:: refsect1 :name: id-1.9.3.160.5 .. rubric:: 描述 :name: 描述 ``REASSIGN OWNED``\ 指示系统把 ``old_role们``\ 拥有 的任何数据库对象的拥有关系更改为 ``new_role``\ 。 .. container:: refsect1 :name: id-1.9.3.160.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist ``old_role`` 一个角色的名称。这个角色在当前数据库中所拥有的 所有对象以及所有共享对象(数据库、表空间)的 所有权都将被重新赋予给 ``new_role``\ 。 ``new_role`` 将作为受影响对象的新拥有者的角色名称。 .. container:: refsect1 :name: id-1.9.3.160.7 .. rubric:: 注解 :name: 注解 ``REASSIGN OWNED``\ 经常被用来为移除一个 或者多个角色做准备。因为\ ``REASSIGN OWNED``\ 不影响其他数据库中的对象,通常需要在包含有 被删除的角色所拥有的对象的每一个数据库中都执行这个命令。 ``REASSIGN OWNED``\ 同时要求源角色和目标 角色上的成员资格。 `DROP OWNED `__\ 命令可以简单地删掉一个或者多个角色所拥有 的所有数据库对象。 ``REASSIGN OWNED``\ 命令不会影响授予给\ ``old_roles``\ 的在它们不拥有的对象上的任何特权。 同样,它不会影响\ ``ALTER DEFAULT PRIVILEGES``\ 创建的默认特权。\ ``DROP OWNED``\ 可以回收那些特权。 .. container:: refsect1 :name: id-1.9.3.160.8 .. rubric:: 兼容性 :name: 兼容性 ``REASSIGN OWNED``\ 命令是一种 PostgreSQL扩展。 .. container:: refsect1 :name: id-1.9.3.160.9 .. rubric:: 另见 :name: 另见 `DROP OWNED `__, `DROP ROLE `__, `ALTER DATABASE `__