如何在 Snowflake 中显示所有角色的所有授权?

Tre*_*vor 5 snowflake-cloud-data-platform

在 Snowflake 中,我知道我可以扮演角色:

show roles
Run Code Online (Sandbox Code Playgroud)

我知道我可以显示特定角色的授权并通过查询访问这些授权:

show grants to role dev_role;
select * from table(RESULT_SCAN (LAST_QUERY_ID()));
Run Code Online (Sandbox Code Playgroud)

我想在一张表中显示所有角色的所有授权。我最好的猜测是编写一个过程,遍历所有角色名称,执行上述代码,并将结果输出到表中。

有没有更好的方法来做到这一点?

Sim*_*onD 4

您有权访问名为Snowflake的共享数据库吗?如果没有,那么您可能需要请求accountadmin向您提供IMPORTED PRIVILEGES补助金,如此处所述

无论如何,如果您有权访问此数据库,那么我认为您应该能够从GRANTS_TO_ROLES视图中获取所需的信息:

select * 
from snowflake.account_usage.grants_to_roles;
Run Code Online (Sandbox Code Playgroud)

  • 注:这不包括未来的补助金。请记住显示未来的补助金以获得补助金的完整情况:https://docs.snowflake.net/manuals/sql-reference/sql/show-grants.html (2认同)