执行dbt run报错:无权限访问BigQuery的dbt-tutorial:jaffle_shop.orders表
dbt访问BigQuery dbt-tutorial数据集权限报错解决方案
核心错误原因:当前dbt绑定的BigQuery认证账号没有dbt-tutorial公共数据集下jaffle_shop.orders表的查询权限,按以下步骤修复即可:
步骤1:配置GCP账号基础权限
打开GCP控制台IAM页面,找到你在dbtprofiles.yml中配置的BigQuery认证账号(服务账号/个人谷歌账号),给账号添加BigQuery User或者BigQuery Data Viewer角色,确保账号具备bigquery.jobs.create(创建查询任务)和bigquery.tables.getData(读取表数据)的基础权限。步骤2:配置dbt-tutorial数据集访问权限
dbt官方提供的dbt-tutorial为公开数据集,默认对所有谷歌账号开放,如仍无法访问,手动在BigQuery控制台配置权限:- 在BigQuery控制台搜索栏输入
dbt-tutorial定位到公共数据集 - 点击数据集右侧更多操作按钮,选择「共享」
- 填入你的认证账号,授予「BigQuery 数据查看者」权限后保存。
- 在BigQuery控制台搜索栏输入
步骤3:核对模型引用路径
打开报错对应的models/customers.sql文件,确认orders表的引用写法符合规范,避免写错项目、数据集名导致误访问不存在的表,正确的源表引用格式为:{{ source('jaffle_shop', 'orders') }}不要硬编码错误的表路径。
步骤4:验证权限有效性
先用同一个认证账号在BigQuery控制台执行测试SQL,确认能正常查询数据:SELECT * FROM `dbt-tutorial.jaffle_shop.orders` LIMIT 10手动查询成功后再执行
dbt run,即可正常运行。
内容的提问来源于stack exchange,提问作者Adrien Arcuri
相关产品推荐
相关产品推荐

