我需要检查从元数据表获得的角色和授予用户的权限。 基本上,我需要元数据表,我可以在其中使用多个角色查询此数据。 XXX,YYY,ZZZ。我需要它来获取可能已被授予的角色的层次结构。
我可以显示角色XXX的授予权限-这将向我授予该角色所授予的所有用户/角色,但是我一次只能做一个角色。 如果我这样做
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_USERS
WHERE ROLE='XXX'
AND DELETED_ON IS null;
它仅给我授予该角色的用户,而不给角色本身。
如果我检查GRANTS_TO_ROLES
表-它为我提供了该角色的实际特权,但没有授予该特定角色的其他角色。
答案 0 :(得分:0)
您可以使用SHOW语法而不是选择:
show roles in account;
将为您提供完整的角色列表(仍然来自元数据)。不确定您要进一步对它们做些什么,但是如果您确实想将结果作为查询进行处理,可以通过
select * from table(result_scan(last_query_id()));
并用于与其他表联接,或仅复制到某种临时表中并从那里进一步联接
答案 1 :(得分:0)
您提到了层次结构-我怀疑您想查看将哪些角色授予其他角色。
尝试一下:
show grants of role Your_Role
在返回的表格中,您会看到一些角色已分配给其他角色和用户。列grant_to