使用 R 连接到 BigQuery 时不断收到拒绝访问

Posted

技术标签:

【中文标题】使用 R 连接到 BigQuery 时不断收到拒绝访问【英文标题】:Keep getting Access Denied when connecting to BigQuery with R 【发布时间】:2019-11-26 16:11:35 【问题描述】:

我对 GCP 和 BigQuery 非常陌生,我正在尝试使用 R 查询我在 Google BigQuery 上上传的简单数据集。在 IAM 设置中,我被列为“BigQuery 管理员”、“BigQuery 数据所有者” ”和“所有者”。

我也可以使用控制台查询数据集,但每次我都会收到一个

access denied, User does not have bigquery.jobs.create permission in project ABCD

这是我的代码:

library("tidyverse")
library("bigrquery")
bq_auth(use_oob = TRUE)


# Store the project id
projectid = "ABCD"

# Set your query
sql <- "SELECT * FROM test.testtable"

# Run the query and store the data in a dataframe
mydf <- query_exec(sql, projectid, use_legacy_sql = FALSE)

# Print the query result
mydf 

到目前为止,我发现的所有来源都告诉我在 IAM 设置中激活 Big Query 的设置 - 但我已经完成了,所以我不知道该怎么做。非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

这显然是一个权限问题。 您能否确保该程序使用的是您的凭据而不是其他服务帐户凭据?

如果您是在笔记本电脑上运行,则可以运行 gcloud auth list 以找出正在使用的凭据。

【讨论】:

我傻了,我的projectID错了(因为在线google控制台左上角没有显示全名)。无论如何感谢您的帮助!供将来参考 - 我在哪里可以在 google SDK 中运行此功能? (我使用的是 Windows) project_name 和 project_id 在开始时会混淆,所以不用担心。您能否详细说明您的 google SDK 相关问题? 谢谢。你说要运行gloud auth list,我的问题是在哪里运行它 - 最后我在 cmd 中运行它并且它工作。再次感谢您的帮助,非常感谢!【参考方案2】:

好吧,我真的很笨。项目名称是字母和数字的组合,但在云控制台的左上角只显示字母。我忘记在 projectId 中输入数字,这就是它不起作用的原因(我指的不是正确的项目)。

希望能省去别人的麻烦!

【讨论】:

project_name 和 project_id 在 GCP 中是两个不同的东西,建议您始终使用 project_id,因为它是唯一的 id

以上是关于使用 R 连接到 BigQuery 时不断收到拒绝访问的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot App 拒绝连接到 Kafka 代理

如何在 R 中使用 DBI 连接到 bigquery 数据库后列出表的字段

在 R Shiny 中连接到 BigQuery

无法连接到在 EC2 实例上运行的 Tigase 服务器:连接被拒绝

Nginx + Docker Compose-连接到上游时connect()失败(111:连接被拒绝)

nginx:连接到上游时连接()失败(111:连接被拒绝)