如何访问Snowflake数据库中INFORMATION_SCHEMA下的对象
授予INFORMATION_SCHEMA权限报错解决方案
- 报错根本原因:你当前执行授权操作的角色权限不足,只有ACCOUNTADMIN、SECURITYADMIN、对应数据库的OWNER,或被授予了该数据库
MANAGE GRANTS权限的角色,才可以操作INFORMATION_SCHEMA的权限授予。 - 补充说明:Snowflake中INFORMATION_SCHEMA是数据库内置系统schema,默认不需要单独授予USAGE权限,只要目标角色拥有所属数据库的USAGE权限,自动就可以访问该数据库下的INFORMATION_SCHEMA。
- 操作方案:
- 先切换到高权限角色:
USE ROLE SECURITYADMIN; - 优先选择授予数据库级权限即可满足需求:
GRANT USAGE ON DATABASE <替换为你的数据库名> TO ROLE <替换为目标角色名>; - 如果确实需要单独授予INFORMATION_SCHEMA的USAGE权限,执行以下语句即可:
GRANT USAGE ON SCHEMA <替换为你的数据库名>.INFORMATION_SCHEMA TO ROLE <替换为目标角色名>;
- 先切换到高权限角色:
Power BI访问INFORMATION_SCHEMA的实现说明
- 该操作完全可以实现,操作要求和步骤如下:
- 确保Power BI连接Snowflake时使用的账号,绑定的角色已经获得对应数据库的USAGE权限(或单独的INFORMATION_SCHEMA的USAGE权限)
- 使用Power BI官方Snowflake连接器完成账号验证、连接后,在导航器中找到对应数据库,展开即可看到INFORMATION_SCHEMA下的所有系统视图,勾选需要的对象加载到Power BI即可
- 注意:INFORMATION_SCHEMA的内容默认按角色权限做了行级过滤,角色只能看到自己有权限访问的对象的元数据。
内容的提问来源于stack exchange,提问作者Shivenndoo
相关产品推荐
相关产品推荐

