提问人:Hazal 提问时间:1/3/2023 最后编辑:Hazal 更新时间:1/3/2023 访问量:460
Snowflake 标签和基于标签的掩码策略
Snowflake tags and tag based masking policies
问:
我一直在寻找一种方法来查询 Snowflake 标签及其所属内容,如架构、表、视图和列,以及应用的屏蔽策略。最简单的方法是从account_usage架构中查询它,如下所示。只有某些人分配了 account_admin 角色,因此我们不能使用此选项。
select * from snowflake.account_usage.tags
order by tag_name;
select * from snowflake.account_usage.tag_references
order by tag_name;
我一直在检查选项并从信息架构中查询它们,但我必须编写输入才能实现它,如下所示。
我会用
show tables
然后使用下面列出的表格,但它不允许我在“DimCustomer”所在的位置编写变量。
select *
from table(information_schema.tag_references_all_columns('"DimCustomer"', 'table'))
对于政策;
select *
from table (information_schema.policy_references(
POLICY_NAME => 'CUST_KEY_MASK')
);
考虑到如果我不知道dim_customers具有标签,并且不知道该标签具有CUST_KEY_MASK策略,我将如何列出所有标记的对象并应用于屏蔽策略?
总结一下:
1-列出所有对象,表,视图
2-列出所有应用了标签的对象
3- 列出所有对象、其标签和应用的标签策略。
你能帮我解决这个问题吗?
非常感谢,
哈扎尔
答:
“最简单的方法是从account_usage模式中查询它,如下所示。只有一些人分配了account_admin角色,因此我们不能使用此选项。
可以将对数据共享和架构的访问权限授予其他角色。SNOWFLAKE
ACCOUNT_USAGE
默认情况下,SNOWFLAKE 数据库仅供 ACCOUNTADMIN 角色使用。
若要使其他角色能够访问数据库和架构以及查询视图,具有 ACCOUNTADMIN 角色的用户必须向所需角色授予以下数据共享权限: 导入的权限
USE ROLE ACCOUNTADMIN; GRANT IMPORTED PRIVILEGES ON DATABASE snowflake TO ROLE SYSADMIN; GRANT IMPORTED PRIVILEGES ON DATABASE snowflake TO ROLE customrole1;
如果需要更精细的权限分配,则:
ACCOUNT_USAGE架构 SNOWFLAKE 数据库角色
此外,您还可以使用 SNOWFLAKE 数据库角色向账户授予更精细的控制权。有关数据库角色的详细信息,请参阅数据库角色。
ACCOUNT_USAGE架构有四个定义的 SNOWFLAKE 数据库角色,每个角色都被授予对特定视图的 SELECT 特权。
OBJECT_VIEWER、USAGE_VIEWER、GOVERNACE_VIEWER 和 SECURITY_VIEWER 角色具有 SELECT 权限,可以查询共享 SNOWFLAKE 数据库中的“帐户使用情况”视图。
“标记”视图可用于“角色”和“角色”OBJECT_VIEWER
GOVERNANCE_VIEWER
USE SNOWFLAKE;
GRANT DATABASE ROLE GOVERNANCE_VIEWER TO ROLE SYSADMIN;
GRANT DATABASE ROLE GOVERNANCE_VIEWER TO ROLE CUSTOM_ROLE;
评论