DROP ROLE
Name
DROP ROLE -- 移除一个数据库角色
Synopsis
DROP ROLE [ IF EXISTS ] name [, ...]
描述
   DROP ROLE移除指定的角色。要删除一个
   超级用户角色,你必须自己就是一个超级用户。要删除一个非超级用户角
   色,你必须具有CREATEROLE特权。
  
   如果一个角色仍然被集簇中任何数据库中引用,它就不能被移除。如果尝试
   移除将会抛出一个错误。在删除该角色前,你必须删除(或者重新授予所有
   权)它所拥有的所有对象并且收回该已经授予给该角色的特权。REASSIGN OWNED和DROP OWNED
   命令可以用于这个目的。
  
   不过,没有必要移除涉及该角色的角色成员关系。
   DROP ROLE会自动收回目标角色在其他角色中的成员
   关系,以及其他角色在目标角色中的成员关系。其他角色不会被删除也不
   会被影响。
  
参数
- IF EXISTS
       如果该角色不存在则不要抛出一个错误,而是发出一个提示。
     
- name
       要移除的角色的名称。
     
注解
   PostgreSQL包括一个程序dropuser具有和这个命令完全相同的功能(事实
   上它会调用这个命令),但是该程序可以从 shell 运行。
  
示例
   要删除一个角色:
DROP ROLE jonathan;
兼容性
   SQL 标准定义了DROP ROLE,
   但是它只允许一次删除一个角色并且它指定了和
   PostgreSQL不同的特权需求。