无需orgadmin角色,如何访问Snowflake organization_usage完整跨账号成本数据?
解决方案
问题原因
AccountAdmin角色仅能查看本账号的成本数据,跨账号的组织级成本数据默认仅对OrgAdmin角色开放,这就是你用AccountAdmin查询视图为空的核心原因。
授权步骤(需用OrgAdmin角色执行)
无需让服务依赖OrgAdmin,你可以通过OrgAdmin给指定角色授予组织级成本数据的访问权限,具体操作如下:
- 切换到OrgAdmin角色:
USE ROLE ORGADMIN;
- 授予目标角色对SNOWFLAKE数据库中ORGANIZATION_USAGE schema的访问权限:
GRANT USAGE ON SCHEMA SNOWFLAKE.ORGANIZATION_USAGE TO ROLE [你的目标角色名];
- 授予目标角色对schema下所有成本相关视图的SELECT权限(也可指定具体视图,比如
COST_HISTORY、METERING_HISTORY等):
GRANT SELECT ON ALL VIEWS IN SCHEMA SNOWFLAKE.ORGANIZATION_USAGE TO ROLE [你的目标角色名];
- (可选)授予对未来新增视图的自动访问权限,避免后续新增视图需重复授权:
GRANT SELECT ON FUTURE VIEWS IN SCHEMA SNOWFLAKE.ORGANIZATION_USAGE TO ROLE [你的目标角色名];
权限验证
切换到目标角色,执行查询验证数据是否可访问:
USE ROLE [你的目标角色名]; SELECT * FROM SNOWFLAKE.ORGANIZATION_USAGE.COST_HISTORY LIMIT 10;
验证通过后,你的导出服务即可使用该授权角色访问跨账号成本数据,无需依赖OrgAdmin权限。
内容的提问来源于stack exchange,提问作者Alexander Taran
相关产品推荐
相关产品推荐

