DROP OWNED

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

大纲

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

说明

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

参数

name

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

CASCADE

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

RESTRICT

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

注解

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

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

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

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

更多讨论请见第 22.4 节

兼容性

DROP OWNED命令是一个PostgreSQL扩展。

另见

REASSIGN OWNED, DROP ROLE