DROP ROLE

用于移除数据库角色的 SQL 命令

DROP ROLE 是一个用于移除数据库角色的 DDL 命令。

DROP ROLEPostgreSQL 8.1 中引入,取代了原有的 DROP USERDROP GROUP 命令(这些命令被保留作为 DROP ROLE 的别名)。

用法

DROP ROLE 会从 PostgreSQL 实例中移除指定的角色。

在执行 DROP ROLE 之前,PostgreSQL 实例中由该角色拥有的任何对象都必须被重新分配或移除。

然而,无论是否有其他角色是待删除角色的成员,DROP ROLE 都会成功执行。

变更历史

示例

基本 DROP ROLE 执行

postgres=# DROP ROLE foo;
DROP ROLE

尝试删除不存在的角色

postgres=# DROP ROLE foo;
ERROR:  role "foo" does not exist

安全地尝试删除可能不存在的角色

postgres=# DROP ROLE IF EXISTS foo;
NOTICE:  role "foo" does not exist, skipping
DROP ROLE

尝试删除当前数据库中仍拥有一项或多项对象的角色

postgres=# DROP ROLE foo;
ERROR:  role "foo" cannot be dropped because some objects depend on it
DETAIL:  owner of database bar
owner of table baz

尝试删除 PostgreSQL 实例中不同数据库里仍拥有一项或多项对象的角色

postgres=# DROP ROLE foo;
ERROR:  role "foo" cannot be dropped because some objects depend on it
DETAIL:  1 object in database bar

分类

DDL, SQL 命令, 用户和角色

另请参阅

CREATE ROLE, ALTER ROLE

反馈

提交关于“DROP ROLE”的任何评论、建议或更正请点击 此处