考虑我的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;
答案 0 :(得分:0)
CREATEROLE
应该能够删除角色。但是需要删除所有依赖项。错误消息告诉您仍有依赖项。
根据manual,您可以删除REASSIGN OWNED
或DROP OWNED
的依赖关系。例如
REASSIGN OWNED BY temp TO admin2;