删除其他用户

时间:2017-01-24 10:32:54

标签: database postgresql

考虑我的postgres数据库admin1和admin2中有两个管理员用户。现在我使用admin1登录并创建一个新的用户temp。我可以使用登录admin1删除此用户但是当我尝试使用admin2删除它时,它会给我错误'role'temp“无法删除,因为某些对象依赖于它。”

创建管理员用户语句:

create user admin2 with password '...admin2';
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO admin2 WITH grant option;
ALTER USER admin2 CREATEROLE;

我是否需要向admin2提供另一个权限,以便我可以删除temp?

创建临时用户语句:

create user temp with password '... temp';
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO temp;

我的drop temp用户语句是:

REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM temp;
REVOKE ALL ON DATABASE database FROM temp;
DROP USER temp;

1 个答案:

答案 0 :(得分:0)

CREATEROLE应该能够删除角色。但是需要删除所有依赖项。错误消息告诉您仍有依赖项。

根据manual,您可以删除REASSIGN OWNEDDROP OWNED的依赖关系。例如

REASSIGN OWNED BY temp TO admin2;