删除用户,处理 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 上遇到这些管理脚本时,我最终找到了解决方案:

awslabs/amazon-redshift-utils

问题最终是授予其他用户的默认权限。