========== DROP OWNED ========== .. container:: refentry :name: SQL-DROP-OWNED .. container:: titlepage .. container:: refnamediv .. rubric:: DROP OWNED :name: drop-owned DROP OWNED — 移除一个数据库角色拥有的数据库对象 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis DROP OWNED BY { name | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ] .. container:: refsect1 :name: id-1.9.3.122.5 .. rubric:: 描述 :name: 描述 ``DROP OWNED``\ 删除当前数据库中被指定 角色之一拥有的所有对象。任何已被授予给给定角色在当前数据库中对 象上或者在共享对象(数据库、表空间)上的特权也将会被收回。 .. container:: refsect1 :name: id-1.9.3.122.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist ``name`` 其对象将被删除并且其特权将被收回的角色的名称。 ``CASCADE`` 自动删除依赖于受影响对象的对象,然后删除所有 依赖于那些对象的对象(见\ `第 5.14 节 `__\ )。 ``RESTRICT`` 如果有任何其他数据库对象依赖于一个受影响的对象, 则拒绝删除一个角色所拥有的对象。这是默认值。 .. container:: refsect1 :name: id-1.9.3.122.7 .. rubric:: 注解 :name: 注解 ``DROP OWNED``\ 常常被用来为移除一个 或者多个角色做准备。因为\ ``DROP OWNED`` 只影响当前数据库中的对象,通常需要在包含将被移除角色所拥有的对象 的每一个数据库中都执行这个命令。 使用\ ``CASCADE``\ 选项可能导致这个命令递归去删除由其他 用户所拥有的对象。 `REASSIGN OWNED `__\ 命令是另一种选择,它可以把一个 或多个角色所拥有的所有数据库对象重新授予给其他角色。不过, ``REASSIGN OWNED``\ 不处理其他对象的特权。 角色所拥有的数据库、表空间将不会被移除。 .. container:: refsect1 :name: id-1.9.3.122.8 .. rubric:: 兼容性 :name: 兼容性 ``DROP OWNED``\ 命令是一个 PostgreSQL扩展。 .. container:: refsect1 :name: id-1.9.3.122.9 .. rubric:: 另见 :name: 另见 `REASSIGN OWNED `__, `DROP ROLE `__