删除数据库用户账号。
语法
DROP USER name [ CASCADE ]
说明
DROP USER
可删除指定的用户。要删除超级用户,您自己必须是超级用户;要删除超级用户以外的用户,您必须具有CREATEROLE
特权。
如果集群中的任何数据库仍在引用一个用户,则不能将其删除;如果删除,则会引发错误。在删除用户之前,必须删除其拥有的所有对象(或重新分配它们的所有权)并取消之前向用户授予的所有特权。
不过,并非必须删除与用户相关的角色成员资格;DROP USER
会自动取消目标用户在其他角色中的所有成员资格,以及其他角色在目标用户中的成员资格。不会删除其他角色,也不会产生其他影响。
另外,如果用户仅有的对象属于用户拥有的、与用户同名的Schema,则可以指定CASCADE
选项。在这种情况下,必须由超级用户发出DROP USER name CASCADE
命令,且所指定用户、Schema以及Schema中的所有对象都将被删除。
参数
参数 | 说明 |
参数 | 说明 |
name | 要删除的用户的名称。 |
CASCADE | 如果已指定,还会删除用户拥有的、与用户同名的Schema(以及属于Schema成员的用户拥有的所有对象),前提是不存在依赖于用户或Schema的其他依赖项。 |
示例
删除不拥有对象、也未被授予有关其他对象的任何特权的用户账号:
DROP USER john;
删除用户账号john
,它未被授予有关任何对象的任何特权,而且在名为john
的Schema(由john
用户所有)以外不拥有任何对象:
DROP USER john CASCADE;
该文章对您有帮助吗?
- 本页导读 (1)
- 语法
- 说明
- 参数
- 示例