【问题标题】:Roles Metadata Tables in SnowflakeSnowflake 中的角色元数据表
【发布时间】:2020-05-16 06:28:21
【问题描述】:

我需要从元数据表中检查授予用户的角色和授权。 基本上,我需要元数据表,我可以在其中使用多个角色进行查询,例如。 XXX,YYY,ZZZ。我需要这个来获取可能已被授予的角色的层次结构。

我可以显示授予角色 XXX - 这将为我提供授予此角色的所有用户/角色,但我必须一次只为一个角色执行。 如果我这样做了

SELECT * 
FROM SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_USERS 
WHERE ROLE='XXX' 
AND DELETED_ON IS null;

它只给我被授予此角色的用户,而不是角色本身。 如果我检查 GRANTS_TO_ROLES 表 - 它给了我为该角色授予的实际权限,但不是授予该特定角色的其他角色。

【问题讨论】:

标签: snowflake-cloud-data-platform snowflake-schema


【解决方案1】:

你可以做的是使用 SHOW 语法而不是选择:

show roles in account;

将为您提供完整的角色列表(仍然来自元数据)。不确定您究竟想进一步对它们做什么,但如果您真的想将结果作为查询进行处理,您可以按照

select * from table(result_scan(last_query_id()));

并用于与其他表连接或只是复制到某种临时表中并从那里进一步连接

【讨论】:

    【解决方案2】:

    您提到了层次结构 - 我怀疑您想查看哪些角色被授予其他角色..

    试试这个:

    show grants of role Your_Role
    

    在返回的表格中,您将看到一些角色被分配给其他角色和用户......即列grant_to

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 1970-01-01
      • 2021-09-23
      • 2020-10-28
      • 2021-11-24
      • 2020-02-28
      • 2022-11-16
      • 1970-01-01
      • 2012-02-13
      相关资源
      最近更新 更多