Data Fusion跨项目写入BigQuery报bigquery.tables.get权限不足需补充什么角色
问题解决说明
报错明确提示服务账号缺少bigquery.tables.get权限,该权限是BigQuery Sink在部署前验证阶段,用于读取目标表元数据、校验写入字段匹配性的必须权限。
操作步骤
1. 修正BigQuery Sink表路径配置
当前报错指向项目A(pA)下的dataset_1.table_X表,说明你配置Sink时只填了数据集.表名,未指定目标项目ID,Data Fusion会默认使用实例所属的pA项目查找表,自然找不到你在pB创建的目标表。
请将表路径修改为全路径格式:{pB项目ID}:{目标数据集名称}.{目标表名称}
2. 补充对应角色权限
确认路径配置正确后,给项目A的两个服务账号(Data Fusion实例服务账号、[数字]-project-compute@developer.gserviceaccount.com计算默认服务账号),在pB项目的目标BigQuery数据集或单表上授予任意一个符合要求的预定义角色即可:
roles/bigquery.dataEditor(生产环境推荐):包含bigquery.tables.get元数据读取、表数据写入、表结构更新权限,完全覆盖写入场景的所有权限要求roles/bigquery.dataViewer:仅包含元数据读取权限,如果你已经单独给服务账号配置了写入权限可选择该角色roles/bigquery.admin:权限范围过大,不建议生产环境使用
3. 权限生效验证
配置完成后可通过gcloud命令快速验证权限是否配置正确:
gcloud projects get-iam-policy <pB项目ID> --filter="member:serviceAccount:<待验证服务账号邮箱>"
内容的提问来源于stack exchange,提问作者Lais T
相关产品推荐
相关产品推荐

