DROP OWNED

删除由数据库角色拥有的数据库对象。

概要

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

描述

DROP OWNED 命令将删除当前数据库中由指定角色之一拥有的所有对象。同时,这些角色在当前数据库对象或共享对象(如数据库、表空间)上被授予的任何权限也将被撤销。

参数

  • name
    • 将被删除其对象并撤销其权限的角色名称。
  • CASCADE
    • 自动删除依赖于受影响对象的对象,进而删除所有依赖于这些对象的对象。
  • RESTRICT
    • 如果任何其他数据库对象依赖于受影响的对象之一,则拒绝删除该角色拥有的对象。这是默认行为。

注意

DROP OWNED 通常用于为移除一个或多个角色做准备。由于 DROP OWNED 仅影响当前数据库中的对象,因此通常需要在每个包含待移除角色所拥有对象的数据库中执行此命令。

使用 CASCADE 选项可能会使该命令递归处理其他用户拥有的对象。

REASSIGN OWNED 命令是一种替代方案,可重新分配一个或多个角色所拥有所有数据库对象的所有权。但需注意,REASSIGN OWNED 不会处理其他对象的权限。

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

示例

删除所有由名为 sally 的角色拥有的数据库对象:

DROP OWNED BY sally;

兼容性

DROP OWNED 命令是数据库扩展功能。

另见

REASSIGN OWNED, DROP ROLE