在雪花中检索帐户的所有可用屏蔽策略

Posted

技术标签:

【中文标题】在雪花中检索帐户的所有可用屏蔽策略【英文标题】:Retrieve all available masking policies for an account in snowflake 【发布时间】:2020-10-07 10:34:54 【问题描述】:

如何在雪花中获取特定帐户中创建的所有屏蔽策略?有什么风景可以看吗?

显示屏蔽策略只检索与策略相关的数据,而不是它的应用位置?

如何获取所有策略以及在哪些表的哪些列中应用这些策略?

【问题讨论】:

【参考方案1】:

可以查询信息架构表-函数POLICY_REFERENCES,看这里:https://docs.snowflake.com/en/sql-reference/functions/policy_references.html

这也是文档中的一个示例:

use database my_db;
use schema information_schema;
select *
  from table(information_schema.policy_references(policy_name => 'ssn_mask'));

重要提示:您必须执行USE DATABASE ...USE SCHEMA INFORMATION_SCHEMA 命令或使用完全限定标识符。

如果这还不够,当您将上面的查询与SHOW MASKING POLICIES; 和 RESULT_SCAN() 函数结合使用时,您可以查询所有表和所有列的所有策略。 RESULT_SCAN() 可以查询SHOW MASKING POLICIES;(https://docs.snowflake.com/en/sql-reference/functions/result_scan.html)的结果

结果:您将获得所有策略名称,并且您可以为每个名称调用 POLICY_REFERENCES()。

【讨论】:

以上是关于在雪花中检索帐户的所有可用屏蔽策略的主要内容,如果未能解决你的问题,请参考以下文章

丢弃用户时出现雪花问题

雪花动态屏蔽屏蔽底层表:派生表未屏蔽,视图为空?

雪花警报长时间运行的查询

雪花存储过程 - 如何检索 CTAS 语句创建的行数

在雪花中切换用户角色

如何在雪花中调用另一个过程中的过程