如何找到群组在红移中拥有的权限?

问题描述 投票:1回答:2

我对一个群体有一个奇怪的问题。我已撤销此组的所有数据库访问权限我已撤消此组的所有模式访问权限我已撤消此组的所有表访问权限我已撤消对所有权限执行权限当我尝试删除该组时,我收到错误消息说它不能因为该组对某个对象具有特权而被删除。

如何找出群组在红移上的特权?谢谢

sql amazon-redshift privileges
2个回答
0
投票

我记得在某个地方看到这可以通过服务器上的终端完成。但是,您可能遇到与我相同的问题,从而阻止您丢弃组。我设置了默认权限。我不得不这样做:

alter default privileges in schema seeds revoke all on tables from xyz cascade;

0
投票

您可以在pg_default_acl表中查看默认组权限。这是defaclacl列中的条目,格式为group <groupname>=<privileges>/<grantor>

您必须为为其设置权限的每个创建用户发出alter default privileges。这是defacluser专栏,指的是pg_user.usesysid

相应地替换groupnameschemaname并生成查询以撤消权限:

select 'alter default privileges for ' || pg_user.usename || ' in schema schemaname revoke all on tables from group groupname;'
from pg_default_acl
join pg_user on pg_default_acl.defacluser = pg_user.usesysid
where array_to_string(defaclacl, ',') like '%group groupname=%';

select 'alter default privileges for ' || pg_user.usename || ' in schema schemaname revoke all on functions from group groupname;'
from pg_default_acl
join pg_user on pg_default_acl.defacluser = pg_user.usesysid
where array_to_string(defaclacl, ',') like '%group groupname=%';
© www.soinside.com 2019 - 2024. All rights reserved.