【发布时间】:2022-08-04 04:13:50
【问题描述】:
我想转动系统视图 svv__*_privileges 中的值,以显示按对象分配给安全原则的权限。 (对于完整的解决方案,需要合并所有对象的结果并转向所有权限)
作为默认权限的示例:
select * from
(select object_type, grantee_name, grantee_type, privilege_type, 1 as is_priv from pg_catalog.svv_default_privileges where grantee_name = \'abc\' and grantee_type = \'role\')
pivot (max(is_priv) for privilege_type in (\'EXECUTE\', \'INSERT\', \'SELECT\', \'UPDATE\', \'DELETE\', \'RULE\', \'REFERENCES\', \'TRIGGER\', \'DROP\') );
这会产生错误(仅在领导节点上有效?)
[Amazon](500310) 无效操作:由于内部错误,查询不受支持。
然后想尝试一个临时表,枢轴然后在一个红移表上
select * into temp schema_default_priv from pg_catalog.svv_default_privileges where grantee_name = \'abc\' and grantee_type = \'role\'...与上述相同的错误:-(
有没有办法可以在系统表上使用 SQL 来在 Redshift SQL 中完成此任务????
虽然我可以在 python 中执行枢轴...为什么我应该,它应该是一个 sql db!
-
有关错误消息的更多信息会有所帮助/您为什么提到领导节点?我的第一个猜测是,这是由于为 is_priv 提供了 SQL(非表数据)。 Redshift 对来自计算节点上使用的领导者的数据有限制。这应该已通过您的临时表方法解决。你能分享你用来做这个的SQL吗?
标签: amazon-redshift