服务帐号和项目之间的 BigQuery 关系

Posted

技术标签:

【中文标题】服务帐号和项目之间的 BigQuery 关系【英文标题】:BigQuery Relation between service account and project 【发布时间】:2020-07-07 08:05:55 【问题描述】:

我正在使用 Node 库将我的应用程序与 BigQuery 集成。我计划接受来自用户的 projectId、电子邮件和私钥,然后我将通过调用限制为 1 的 getDataset 操作来验证凭据这将确保用户传递的所有 3 个参数都是正确的。

但后来我意识到,即使我传递了不同的有效项目 ID,我对 getDataset 的调用也会通过。操作从该项目中获取数据集。所以我想知道服务帐户是否未链接到项目。知道如何验证这三个参数吗?

【问题讨论】:

如果答案有用,请考虑接受并点赞。您可以点击 ✓ 接受它并点击 ▲ 【参考方案1】:

服务帐户密钥内部包含一些属性,包括 project_id、private_key、c​​lient_email 和许多其他属性。在这个page 中,您可以找到如何配置凭据以使用客户端库。

基本上,第一步是创建一个服务帐户并下载一个 JSON 密钥(我想你已经完成了这一步)

然后您需要在系统中设置一个环境变量,以便您的应用程序可以访问凭据。

对于 Linux/Mac,您可以运行:

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

对于 Windows(使用 CMD):

set GOOGLE_APPLICATION_CREDENTIALS=[PATH]

【讨论】:

以上是关于服务帐号和项目之间的 BigQuery 关系的主要内容,如果未能解决你的问题,请参考以下文章

如何分别使用服务帐号和 API 密钥来使用 BigQuery?

我的服务帐号即使拥有足够的权限也无法访问 BigQuery 数据

将 Google Analytics 360 链接到 Big Query,权限问题

更改不同属性之间的来源(Big Query - Google Analytics)

python中的Web服务,用于获取Big Query中表的架构信息

Big Query 匹配表之间的记录