【问题标题】:Snowflake tags and tag based masking policies雪花标签和基于标签的屏蔽策略
【发布时间】:2023-01-03 01:14:03
【问题描述】:
我一直在寻找一种查询 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- 列出所有对象、它们的标签和应用的标签策略。
你能帮我解决这个问题吗?
非常感谢,
哈扎尔
【问题讨论】:
标签:
tags
snowflake-cloud-data-platform
data-masking
【解决方案1】:
“最简单的方法是从 account_usage 模式中查询,如下所示。只有一些人分配了 account_admin 角色,所以我们不能使用这个选项。”
可以将对SNOWFLAKE数据共享和ACCOUNT_USAGE模式的访问权限授予其他角色。
Enabling Snowflake Database Usage for Other Roles
默认情况下,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 Schema SNOWFLAKE Database Roles
此外,您可以使用 SNOWFLAKE 数据库角色为帐户授予更精细的控制权。有关数据库角色的更多信息,请参阅数据库角色。
ACCOUNT_USAGE 模式有四个定义的 SNOWFLAKE 数据库角色,每个角色都被授予对特定视图的 SELECT 特权。
ACCOUNT_USAGE Views by Database Role
OBJECT_VIEWER、USAGE_VIEWER、GOVERNACE_VIEWER 和 SECURITY_VIEWER 角色具有在共享 SNOWFLAKE 数据库中查询帐户使用情况视图的 SELECT 权限。
标签视图可用于 OBJECT_VIEWER 角色和 GOVERNANCE_VIEWER 角色