DROP ROLE — 移除一个数据库角色
DROP ROLE [ IF EXISTS ] name [, ...]
DROP ROLE移除指定的角色。 要删除超级用户角色,你自己也必须是超级用户; 要删除非超级用户角色,你必须拥有CREATEROLE权限, 并且已被授予该角色上的ADMIN OPTION。
如果某角色仍在该集簇的任何数据库中被引用,则不能移除该角色; 若是如此将引发错误。在删除该角色之前,你必须删除它拥有的所有对象 (或者重新分配这些对象的拥有关系),并撤销该角色在其他对象上被授予的任何权限。 REASSIGN OWNED 和DROP OWNED 命令可用于此目的;更详细的讨论见Section 21.4。
不过,不必手工移除与该角色相关的角色成员资格; DROP ROLE会自动撤销目标角色在其他角色中的任何成员资格, 以及其他角色在目标角色中的任何成员资格。 其他角色不会被删除,也不会受到影响。
IF EXISTS如果该角色不存在,则不要抛出错误。这种情况下会发出一个提示。
name要移除的角色名称。
PostgreSQL包含一个程序dropuser, 它与此命令具有相同功能(实际上它就是调用此命令), 但可以从命令 shell 中运行。
删除一个角色:
DROP ROLE jonathan;
SQL 标准定义了DROP ROLE,但它一次只允许删除一个角色, 并且规定的权限要求也不同于PostgreSQL。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。