删除用户,处理 Redshift 中的空白默认权限,pg_default_acl
Dropping a User, Handling Blank Default Privileges in Redshift, pg_default_acl
我想在开发环境中重置权限,我注意到有两个用户无法删除。我检查了所有权限等,我发现对这些用户的唯一引用是在 pg_default_acl.
select * from pg_default_acl;
Returns:
defacluser | defaclnamespace | defaclobjtype | defaclacl
----------------------------------------------------------------------
101 | 0 | r | {}
122 | 0 | r | {}
这些空权限是否阻止我删除这些用户?
丢弃失败的确切错误是什么?这些用户可能拥有表、视图或函数。
您可以找到带有 select * from pg_tables where tableowner in ('one', 'two');
的表格
观看次数:select * from pg_views where viewowner in ('one', 'two');
具有以下功能:select * from pg_proc where proowner in (select usesysid from pg_user where usename in ('one', 'two'));
然后您的用户也可能拥有模式:
select * from pg_namespace where nspowner in (select usesysid from pg_user where usename in ('one', 'two'));
当我在 github 上遇到这些管理脚本时,我最终找到了解决方案:
问题最终是授予其他用户的默认权限。
我想在开发环境中重置权限,我注意到有两个用户无法删除。我检查了所有权限等,我发现对这些用户的唯一引用是在 pg_default_acl.
select * from pg_default_acl;
Returns:
defacluser | defaclnamespace | defaclobjtype | defaclacl
----------------------------------------------------------------------
101 | 0 | r | {}
122 | 0 | r | {}
这些空权限是否阻止我删除这些用户?
丢弃失败的确切错误是什么?这些用户可能拥有表、视图或函数。
您可以找到带有 select * from pg_tables where tableowner in ('one', 'two');
观看次数:select * from pg_views where viewowner in ('one', 'two');
具有以下功能:select * from pg_proc where proowner in (select usesysid from pg_user where usename in ('one', 'two'));
然后您的用户也可能拥有模式:
select * from pg_namespace where nspowner in (select usesysid from pg_user where usename in ('one', 'two'));
当我在 github 上遇到这些管理脚本时,我最终找到了解决方案:
问题最终是授予其他用户的默认权限。