【问题标题】:Google spreadsheet script authorisation to BigQuery对 BigQuery 的 Google 电子表格脚本授权
【发布时间】:2015-08-25 11:49:16
【问题描述】:

我有一个带有连接到 BigQuery 的脚本的 Google 电子表格(使用本教程 - https://developers.google.com/apps-script/advanced/bigquery?hl=ar-AE)。 它添加了一个额外的菜单选项,用户可以运行对 BigQuery 执行查询的脚本。

它对我来说很好,我想与其他用户(无权访问 BigQuery 本身)共享此电子表格,并允许他们运行我的脚本。当我这样做时,首先他们会获得脚本授权对话框,然后能够运行脚本。但 BigQuery 返回错误:

Exception: Access Denied: Job XXX:job_NaMBWMRfbMHygS1n10AQXXXX: The user does not have permission to run a query in project XXXXX

我尝试将脚本部署为网络应用程序并将其设置为在我的帐户下执行,但它没有改变任何内容。

有什么解决方案或解决方法吗?

【问题讨论】:

    标签: google-apps-script google-sheets google-bigquery


    【解决方案1】:

    不幸的是,如果脚本作为 Web 应用程序运行,您只能允许访问以“您”身份运行的脚本。将它作为 webapp 运行的唯一方法是浏览器调用 doGet()/doPost() 函数。以函数形式运行 doGet() 以将其作为普通脚本运行。

    您可以使用开发人员控制台中的项目访问控制来授予运行查询的访问权限。查看:
    https://cloud.google.com/bigquery/access-control

    另一种选择是使用 Oauth2 库并将您的个人令牌存储在脚本属性中。然后,您可以重写脚本以使用 BigQuery REST 接口。在以下位置有一个模板: https://github.com/googlesamples/apps-script-templates/tree/master/sheets-import

    【讨论】:

    • 感谢您的回答!似乎没有简单而美观的解决方案,对我来说最好的办法是让所有使用我的电子表格的人都能访问 BigQuery。
    【解决方案2】:

    我发现最好的方法是简单地更改文件appsscript.json 的配置。您可以通过访问查看 > 显示项目清单找到。在那里,您将找到一个更改选项 executeAs 的选项,如果您更改为 USER_DEPLOYING,Web 应用程序将始终以部署人员的身份运行,并且很可能有权访问 BigQuery 项目。您可以在此处找到文档的来源:https://developers.google.com/apps-script/manifest

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-29
      • 2022-12-07
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多