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

Google Apps Script访问BigQuery关联GoogleSheet表时Drive凭证被拒如何解决

问题原因

该报错是因为BigQuery查询关联Google Sheet的外部表时,需要获取Google Drive访问权限,而默认的Google Apps Script授权配置没有传递Drive权限给BigQuery服务,导致权限校验失败,你可以按照以下步骤修复:

解决步骤

1. 开启appsscript.json显示权限

打开Google Apps Script项目,点击左侧齿轮形状的「项目设置」图标,勾选「在编辑器中显示appsscript.json 清单文件」,回到代码编辑器即可看到该清单文件。

2. 修改appsscript.json配置

将以下配置合并到你现有的清单文件中,注意不要覆盖已有的runtimeVersion、timeZone等自定义配置:

{
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "BigQuery",
        "serviceId": "bigquery",
        "version": "v2"
      }
    ]
  },
  "oauthScopes": [
    "https://www.googleapis.com/auth/bigquery",
    "https://www.googleapis.com/auth/drive.readonly",
    "https://www.googleapis.com/auth/script.external_request"
  ]
}

核心变更为新增了drive.readonly的OAuth授权范围,确保脚本可以将你的Drive访问权限传递给BigQuery服务。

3. 调整BigQuery查询代码

在你的查询请求参数中,必须指定使用标准SQL(外部表不支持旧版SQL),示例代码如下:

const projectId = '你的GCP项目ID';
const queryRequest = {
  query: '你要执行的SQL语句',
  useLegacySql: false
};

// 执行查询
const queryResults = BigQuery.Jobs.query(queryRequest, projectId);

4. 重新授权脚本

修改完成后首次运行脚本会弹出授权窗口,按提示完成授权即可。如果之前已经授权过脚本,需要先撤销旧授权再重新操作:

  • 打开Google账号「安全」设置页
  • 进入「第三方应用访问权限管理」
  • 找到当前对应的Apps Script项目,删除已有访问权限
  • 回到脚本编辑器重新运行触发授权流程

异常排查

如果完成以上操作仍报错,可检查两个配置:

  • 确认对应Google Sheet的所有者和你当前使用的账号一致,或你已经被授予至少查看权限
  • 确认BigQuery中的外部表是使用你当前账号创建,而非其他服务账号创建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:36:00