已授权的Google Cloud Data Fusion跨项目访问BigQuery失败问题
可能的故障原因
报错信息:Unable to get details about the BigQuery table:Access Denied:Table B.X. Permission
bigquery.tables.getdenied on table B.X (or it may not exist)
- 服务账号匹配错误:请确认你授权的服务账号确实是Data Fusion实例运行时使用的账号。进入项目A的Data Fusion实例详情页,复制「服务账号」字段的完整邮箱地址,再到项目B的IAM页确认该账号确实被授予了对应权限,不要错把项目A的默认Compute Engine服务账号、Dataproc服务账号当成Data Fusion实例的服务账号授权。
- 表/数据集自定义IAM拦截了继承权限:如果你在表X所属的数据集、或者表X本身单独设置了IAM策略,并且没有勾选「继承项目级权限」,那么你给项目B级授予的权限不会生效。需要进入项目B的BigQuery控制台,打开X表所在的数据集的权限页,确认数据集/表的IAM策略允许该Data Fusion服务账号访问,或者单独给该服务账号授予该表/数据集的
BigQuery Data Viewer权限。 - 表路径配置错误:请确认流水线中配置的BigQuery路径完全正确,必须使用「项目ID.数据集ID.表ID」的格式,不要用项目名称代替项目ID,同时注意数据集、表名的大小写完全匹配,有特殊字符的话需要用反引号
`包裹。路径拼写错误会触发和权限不足完全一致的报错。 - IAM权限传播延迟:IAM新授予的权限最长可能需要10分钟才能全局生效,授权后立刻运行流水线会触发权限不足报错,建议等待10分钟后重试。
- 预览功能使用用户身份而非服务账号:如果你是在流水线编辑页使用「预览」功能测试数据源,默认会使用你当前登录的GCP账号的权限读取数据,而非Data Fusion的服务账号。可以直接运行正式流水线测试,或者给你当前使用的GCP账号也授予项目B的对应访问权限验证是否为该问题。
- 表存在访问限制规则:如果表X配置了行级安全、列级安全,或者是授权视图,仅项目级的
BigQuery Data Viewer权限不足以访问,需要给服务账号额外授予对应行/列的访问权限,或者授权视图的访问权限。
内容的提问来源于stack exchange,提问作者issuela
相关产品推荐
相关产品推荐

