访问 Google Sheets 联合表时出现 BigQuery 凭据问题
Posted
技术标签:
【中文标题】访问 Google Sheets 联合表时出现 BigQuery 凭据问题【英文标题】:BigQuery Credential Problems when Accessing Google Sheets Federated Table 【发布时间】:2016-05-27 15:20:24 【问题描述】:我将一个表定义为一个联合表,它引用了一个谷歌表。当我从 google bigquery web UI 查询它时,它工作得很好。但是,如果我尝试使用 Tableau Software BigQuery 驱动程序查询它,我会收到以下错误消息:找不到合适的凭据来访问 Google Drive。请联系表所有者寻求帮助。
关于我的设置的一些事实:
-
在 Tableau 中使用 BigQuery 驱动程序时,我使用进入 BigQuery Web UI 时使用的相同用户 ID 登录。
从 Tableau 到本机 BigQuery 表的查询工作正常。
我在我的云帐户中启用了 google drive api。
google sheet 和 google big query 账号在同一个 google 用户下。
我在该帐户下将 bigquery 查询保存为 google 表格没有问题。
我尝试将工作表“分享给任何知道该 URL 的人”,但它不起作用。
【问题讨论】:
是的,它现在肯定坏了。我希望BQ开发人员能尽快帮助我们,这是同样的问题,但你的描述更清楚。 ***.com/questions/37381286/… 【参考方案1】:这是 Tableau 应该解决的问题。问题是当他们向 BigQuery 发送请求时,他们只通过 BigQuery API 范围。但是,他们也应该请求 GoogleDrive 范围。
【讨论】:
我为我的个人插件尝试了这个,但没有帮助。 在使用新范围刷新 OAuth 凭据之前,您是否为与您的 API 密钥关联的项目 ID 激活了 Drive API? (我认为这会默默地成功,但你仍然会被拒绝 API 访问) +1 - 我遇到了完全相同的问题,我必须为项目启用 Drive API(除了 BigQuery API),以及使用 BigQuery+Drive 范围。然后,我还必须手动授予工作表权限,以允许访问我的项目用来访问 Google 表格的 ...@appspot.gserviceaccount.com 帐户。 matt1,我知道你暗示这对你有用。您能否给我们详细介绍一下如何执行此操作?【参考方案2】:我不习惯 Tableau,但使用 Google 服务帐户在我的 Rails 应用程序中使用 Bigquery API 时遇到了类似问题。
有两个问题:
Bigquery 的作用域,默认情况下它只能访问 bigquery API,但您可以添加其他作用域,例如 drive
和 spreadsheets
。请参阅此处以了解 Manually embed attributes in the XML of the workbook or data source file
部分下的 Tableau https://help.tableau.com/current/pro/desktop/en-us/examples_googlebigquery.htm,第一个示例包含 SCOPE
属性。每个作用域由一个空格分隔。
文档的访问权限,在我的情况下,我不得不要求电子表格的所有者使用同一服务帐户的电子邮件向我的服务帐户授予权限,即使服务帐户是由超级管理员和电子表格是由同一组织的团队成员创建的。
希望对你有帮助。
【讨论】:
以上是关于访问 Google Sheets 联合表时出现 BigQuery 凭据问题的主要内容,如果未能解决你的问题,请参考以下文章
访问由电子表格支持的bigquery表时出现BadRequest / ForbiddenException异常
如何通过服务帐户通过 Google BigQuery External Table 访问 Google Sheets Doc
Discord bot 无法访问 Google Sheets 获取错误请求缺少有效的 API 密钥