You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google BigQuery Transfer权限报错求助:无Google Drive OAuth令牌

解决方案:BigQuery Scheduled Transfer 关联Google Sheet视图权限报错及表自动删除问题

一、解决「PERMISSION_DENIED: No OAuth token with Google Drive scope was found」报错

这个报错的核心原因很明确:你的Scheduled Transfer任务默认没有请求Google Drive的OAuth权限,而关联Google Sheet的外部表/视图需要访问Drive资源,所以必须手动补全权限配置:

  1. 进入BigQuery控制台,找到你的Scheduled Query Transfer任务,点击「编辑」按钮
  2. 滚动到「高级选项」区域,找到「OAuth scopes」设置项
  3. 添加https://www.googleapis.com/auth/drive这个权限范围(如果已有其他范围,直接追加即可)
  4. 保存配置后,重新触发Transfer任务测试

同时别忘了给Transfer的服务账号授权访问目标Sheet:

  • 在Transfer任务详情页,找到「服务账号」字段(格式类似xxx@xxx.iam.gserviceaccount.com)
  • 打开你关联的Google Sheet,把这个服务账号邮箱添加到共享列表,至少赋予「查看」权限

二、解决复制表被自动删除的问题

你遇到的自动删除大概率是因为误创建了临时表(BigQuery临时表会在会话结束后自动清理),正确的做法是创建永久物化表来存储视图的结果:

  1. 运行以下SQL创建永久表,把视图的结果物化到永久表中:
CREATE OR REPLACE TABLE `your-project-id.your-dataset-id.permanent_sheet_data`
AS SELECT * FROM `your-project-id.your-dataset-id.your-view`;
  1. 确认这个表是「永久表」(在BigQuery数据集列表里能看到,类型标注为「永久」而非「临时」)
  2. 后续的Scheduled Transfer任务直接查询这个永久表,而不是原来关联Sheet的视图

这样既避免了每次Transfer都需要访问Drive的权限依赖,也彻底解决了表被自动删除的问题。

补充排查点

如果还是有问题,检查以下细节:

  • 确认Google Sheet的共享设置没有限制外部账号访问(比如设置了「仅限组织内访问」但服务账号不在你的组织内)
  • 确保Scheduled Transfer的服务账号拥有BigQuery Data Editor或更高权限,能正常读写目标数据集

内容的提问来源于stack exchange,提问作者dataEngineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:40:35