You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Snowflake表/视图是否应用行访问策略?非ACCOUNTADMIN角色方案

检查Snowflake表或视图的行访问策略(非ACCOUNTADMIN角色可用方案)

以下是几种无需ACCOUNTADMIN角色即可检查行访问策略绑定情况的方法:

方法1:使用SHOW ROW ACCESS POLICIES结合RESULT_SCAN

普通角色只要拥有目标表/视图的USAGE权限,或对行访问策略本身有USAGE权限,就能执行该命令:

-- 列出指定 schema 下的所有行访问策略
SHOW ROW ACCESS POLICIES LIKE '%' IN SCHEMA <你的schema名称>;

-- 扫描上一条查询结果,筛选绑定到目标表/视图的策略
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
WHERE REF_ENTITY_NAME = '<表或视图名称>' AND REF_ENTITY_DOMAIN = 'TABLE';

方法2:查询INFORMATION_SCHEMA.APPLIED_ROW_ACCESS_POLICIES视图

该视图仅返回当前角色有权限查看的表/视图所绑定的行访问策略,无需ACCOUNTADMIN权限:

SELECT *
FROM <数据库名称>.<schema名称>.INFORMATION_SCHEMA.APPLIED_ROW_ACCESS_POLICIES
WHERE TABLE_NAME = '<表或视图名称>'
  AND TABLE_SCHEMA = '<schema名称>'
  AND TABLE_CATALOG = '<数据库名称>';

注意:需要当前角色对目标表/视图拥有SELECT或USAGE权限,同时对行访问策略有USAGE权限,才能看到对应记录。

方法3:查看表的元数据与DDL

通过查看表的基础元数据或创建语句,直接确认是否绑定了行访问策略:

  • 使用DESCRIBE TABLE查看表的详细信息,其中会包含ROW ACCESS POLICY字段:
    DESCRIBE TABLE <表或视图名称>;
    
  • 使用GET_DDL获取表的创建语句,里面会显式包含行访问策略的绑定语句:
    SELECT GET_DDL('TABLE', '<数据库名称>.<schema名称>.<表或视图名称>');
    

这两个命令只要拥有表的USAGE权限即可执行。


内容的提问来源于stack exchange,提问作者hitesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:10:30