我在撤销权限时遇到问题,导致我无法删除用户
select usename, acl.*
from pg_default_acl as acl join pg_user on usesysid = defacluser
where usename = 'user1';
给我:
|usename|defacluser|defaclnamespace|defaclobjtype|defaclacl |
|-------|----------|---------------|-------------|----------------------|
|user1 |143 |0 |r |{user1=awdRxt/user1}|
使用亚马逊 ( ) 提供的视图,v_get_obj_priv_by_user
我执行此操作以获取具有该用户权限的架构/数据库:
select 'alter table '+schemaname+'.'+tablename+' owner to y;' from pg_tables where tableowner like 'user1';
select distinct 'revoke all on schema '+schemaname+' from user1;' from admin.v_get_obj_priv_by_user where usename like 'user1';
select distinct 'revoke all on all tables in schema '+schemaname+' from user1;' from admin.v_get_obj_priv_by_user where usename like 'user1'
从之前的查询中得到了这 2 个回复
revoke all on schema xxx from user1;
revoke all on all tables in schema xxx from user1;
我运行它们,没有错误,但权限仍然存在,并且使用的查询v_get_obj_priv_by_user
不断返回相同的结果。
显然,当我稍后尝试删除用户时,会出现以下错误:
SQL 错误 [2BP01]:错误:无法删除用户“user1”,因为某些对象依赖于它详细信息:属于用户 user1 的新关系的默认权限的所有者
知道我做错了什么吗?谢谢!
这对我有用: