PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# DROP ROLE

## 名称

DROP ROLE -- 删除一个数据库角色

## 大纲

    DROP ROLE [ IF EXISTS ] name [, ...]

## 描述

`DROP ROLE`删除指定的角色。要删除一个超级用户角色， 你自己必须也是一个超级用户；要删除非超级用户角色，你必须有`CREATEROLE`权限。

不能删除仍然被集群中的任意数据库引用的角色，如果想删除它，会抛出一个错误。 在删除一个角色之前，你必须删除它拥有的所有对象(或者重新赋予他们新的所有者)， 并且撤销赋予该角色的任何权限。REASSIGN OWNED和 DROP OWNED命令可以达到这个目的。

不过，没有必要删除涉及该角色的角色成员关系；`DROP ROLE` 自动撤销目标角色在任何其它角色里面的成员关系，以及其它角色在目标角色里的成员关系。 其它角色不会被删除，也不会受到其它影影响。

## 参数

`IF EXISTS`

  如果指定的角色不存在，那么发出一个 notice 而不是抛出一个错误。

`name`

  要删除的角色名字。

## 注意

PostgreSQL包含了一个dropuser程序， 有着和这个命令相同的功能(实际上，它调用这个命令)，但是它可以从命令行上运行。

## 例子

删除一个角色：

    DROP ROLE jonathan;

## 兼容性

SQL 标准定义了`DROP ROLE`，但它只允许每次删除一个角色， 并且它声明了和PostgreSQL使用的不同的权限要求。

## 又见

CREATE ROLE, ALTER ROLE, SET ROLE

上一页 | 起始页 | 下一页
DROP OWNED | 上一级 | DROP RULE