如何创建仅可访问Snowflake仪表板的专属角色与用户?
创建仅能访问Snowflake仪表板的自定义角色/用户方案
预定义角色说明
Snowflake没有专门仅用于访问仪表板的预定义角色,需要创建自定义角色实现权限隔离。
自定义角色配置步骤
1. 创建基础角色
先创建专门用于仪表板访问的角色:
CREATE ROLE DASHBOARD_VIEWER;
2. 配置数据访问权限(关键:隔离底层表)
仪表板需要读取数据,但要禁止直接访问原始数据库/表,需通过安全视图封装数据:
- 创建专门的数据库和schema存放仪表板用视图:
CREATE DATABASE DASHBOARD_DATA; CREATE SCHEMA DASHBOARD_DATA.PUBLIC;
- 创建安全视图,仅暴露仪表板所需字段:
CREATE SECURE VIEW DASHBOARD_DATA.PUBLIC.APP_METRICS AS SELECT timestamp, log_level, request_count FROM YOUR_PROD_DB.PUBLIC.APP_LOGS;
- 授予角色对视图及对应层级的最小权限:
GRANT USAGE ON DATABASE DASHBOARD_DATA TO ROLE DASHBOARD_VIEWER; GRANT USAGE ON SCHEMA DASHBOARD_DATA.PUBLIC TO ROLE DASHBOARD_VIEWER; GRANT SELECT ON VIEW DASHBOARD_DATA.PUBLIC.APP_METRICS TO ROLE DASHBOARD_VIEWER;
3. 授予仪表板访问权限
授予角色对目标仪表盘及所在文件夹的权限:
-- 若仪表盘在文件夹中,先授予文件夹使用权限 GRANT USAGE ON FOLDER <你的仪表盘文件夹名称> TO ROLE DASHBOARD_VIEWER; -- 授予仪表盘查看权限 GRANT VIEW ON DASHBOARD <你的仪表盘名称> TO ROLE DASHBOARD_VIEWER;
4. 配置必要的辅助权限
- 允许角色使用Snowsight界面:
GRANT USAGE ON ACCOUNT TO ROLE DASHBOARD_VIEWER;
- 授予仓库使用权限(供仪表板执行查询):
GRANT USAGE ON WAREHOUSE <你的仓库名称> TO ROLE DASHBOARD_VIEWER;
5. 创建用户并关联角色
CREATE USER DASHBOARD_USER PASSWORD='StrongPassword123' DEFAULT_ROLE=DASHBOARD_VIEWER MUST_CHANGE_PASSWORD=FALSE; GRANT ROLE DASHBOARD_VIEWER TO USER DASHBOARD_USER;
最佳实践
- 最小权限原则:仅授予角色完成仪表板访问的必要权限,绝不授予原始数据库/表的直接访问权
- 安全视图隔离:用安全视图封装数据,防止用户查看敏感字段或底层表结构
- 资源限制:为角色使用的仓库设置资源监控或固定小规格(如X-SMALL),避免过度消耗资源
- 定期权限审计:定期运行
SHOW GRANTS TO ROLE DASHBOARD_VIEWER检查权限,移除不必要的授权 - 禁用冗余功能:在用户设置中禁用经典UI访问,强制仅使用Snowsight,减少潜在权限风险
内容的提问来源于stack exchange,提问作者Emile Dadou
相关产品推荐
相关产品推荐

