DROP OWNED — 删除一个数据库角色拥有的数据库对象
DROP OWNED BY { name | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]
DROP OWNED 删除当前数据库中由指定角色之一拥有的所有对象。授予给给定角色的、针对当前数据库中对象或共享对象(数据库、表空间、配置参数)的任何特权也将被回收。
name一个角色的名称,该角色的对象将被删除,该角色的特权将被回收。
CASCADE自动删除依赖于受影响对象的对象,并进而删除所有依赖于这些对象的对象(参见 Section 5.15)。
RESTRICT如果有任何其他数据库对象依赖于受影响对象之一,则拒绝删除该角色拥有的对象。这是默认行为。
DROP OWNED 常被用来为删除一个或多个角色做准备。因为 DROP OWNED 只影响当前数据库中的对象,所以通常需要在每一个包含待删除角色所拥有对象的数据库中执行这个命令。
使用 CASCADE 选项可能会使该命令递归处理其他用户拥有的对象。
REASSIGN OWNED 命令是一种替代方式,它会重新指派一个或多个角色拥有的所有数据库对象的拥有权。但是,REASSIGN OWNED 不会处理其他对象上的特权。
这些角色拥有的数据库和表空间不会被删除。
更多讨论请参见 Section 21.4。
DROP OWNED 命令是 PostgreSQL 的一个扩展。