DROP ROLE

Name

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

Synopsis

DROP ROLE name [, ...]

描述

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

如果一个角色仍然被集群中的任意数据库引用,那么我们不能删除它; 如果想删除它,会抛出一个错误。在删除一个角色之前,你必须删除它拥有的所有对象(或者重新赋予他们新的所有者), 并且撤销赋予该角色的任何权限。

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

参数

name

要删除的角色名字。

注意

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

例子

删除一个角色:

DROP ROLE jonathan;

兼容性

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

又见

CREATE ROLE, ALTER ROLE, SET ROLE