我一直在寻找一种方法来查询雪花标记和它们的财产,如模式、表、视图和列,以及所应用的屏蔽策略。最简单的方法是从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-列出所有的对象,它们的标签,以及应用的标签策略。
你能帮我一下吗?
许多谢谢,
Hazal
"最简单的方法是从account_usage模式查询它,如下所示。只有一些人分配了account_admin角色,所以我们不能使用这个选项。">
可以将SNOWFLAKE
数据共享和ACCOUNT_USAGE
模式的访问权限授予其他角色
为其他角色启用Snowflake数据库
默认情况下,雪花数据库只对ACCOUNTADMIN角色可用。
为使其他角色能够访问数据库和模式,并查询视图,具有ACCOUNTADMIN角色的用户必须为所需角色授予以下数据共享权限:IMPORTED PRIVILEGES
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 Database角色向帐户授予更精细的控制。有关数据库角色的更多信息,请参见数据库角色。
ACCOUNT_USAGE模式有四个定义的雪花数据库角色,每个角色在特定视图上被授予SELECT权限。
ACCOUNT_USAGE数据库角色视图
OBJECT_VIEWER、USAGE_VIEWER、GOVERNACE_VIEWER和SECURITY_VIEWER角色具有查询共享数据库Account Usage视图的SELECT权限。
"OBJECT_VIEWER
角色"one_answers"GOVERNANCE_VIEWER
角色"有标签视图
USE SNOWFLAKE;
GRANT DATABASE ROLE GOVERNANCE_VIEWER TO ROLE SYSADMIN;
GRANT DATABASE ROLE GOVERNANCE_VIEWER TO ROLE CUSTOM_ROLE;