DROP OWNED

DROP OWNED — 移除一个数据库角色拥有的数据库对象

大纲

DROP OWNED BY { name | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]

描述

DROP OWNED删除当前数据库中被指定 角色之一拥有的所有对象。任何已被授予给给定角色在当前数据库中对 象上或者在共享对象(数据库、表空间)上的特权也将会被收回。

参数

name

其对象将被删除并且其特权将被收回的角色的名称。

CASCADE

自动删除依赖于受影响对象的对象,然后删除所有 依赖于那些对象的对象(见第 5.14 节)。

RESTRICT

如果有任何其他数据库对象依赖于一个受影响的对象, 则拒绝删除一个角色所拥有的对象。这是默认值。

注解

DROP OWNED常常被用来为移除一个 或者多个角色做准备。因为DROP OWNED 只影响当前数据库中的对象,通常需要在包含将被移除角色所拥有的对象 的每一个数据库中都执行这个命令。

使用CASCADE选项可能导致这个命令递归去删除由其他 用户所拥有的对象。

REASSIGN OWNED命令是另一种选择,它可以把一个 或多个角色所拥有的所有数据库对象重新授予给其他角色。不过, REASSIGN OWNED不处理其他对象的特权。

角色所拥有的数据库、表空间将不会被移除。

更多讨论请见第 21.4 节

兼容性

DROP OWNED命令是一个 PostgreSQL扩展。

另见

REASSIGN OWNED, DROP ROLE