Python BigQuery 脚本 bigquery.jobs.create 错误
Posted
技术标签:
【中文标题】Python BigQuery 脚本 bigquery.jobs.create 错误【英文标题】:Python BigQuery script bigquery.jobs.create error 【发布时间】:2018-10-26 12:52:59 【问题描述】:我正在尝试通过 python 脚本在 Google BigQuery 上运行一个简单的查询,但我收到以下错误消息,即我的服务帐户缺少 bigquery.jobs.create
权限。
我的服务帐户应用了以下角色:
所有者 BigQuery 管理员 BigQuery 作业用户我还尝试使用 bigquery.jobs.create
创建自定义角色并将其应用于服务帐户,但仍然始终出现此错误。我做错了什么?
from google.cloud import bigquery
from google.oauth2 import service_account
project_id = "my-test-project"
credentials = service_account.Credentials.from_service_account_file("credentials.json")
client = bigquery.Client(
credentials=credentials,
project=project_id
)
print(client.project) # returns "my-test-project"
query = client.query("select 1 as test;")
访问被拒绝:项目 my-test-project:用户 my-service-account @ 我的测试项目。 iam.gserviceaccount.com 没有 项目 my-test-project 中的 bigquery.jobs.create 权限。
【问题讨论】:
嘿@fez,你试过用client = bigquery.Client.from_service_account_json("credentials.json")
吗?我怀疑它会有所作为,但只是好奇。
@Dascienz 是的,谢谢!如果您添加为答案,将接受作为解决方案!
嘿@fez,很高兴您的问题得到了简单的解决!快乐的计算!
【参考方案1】:
使用client = bigquery.Client.from_service_account_json("credentials.json")
验证客户端是避免“拒绝访问”错误的首选方法。出于某种原因(我不确定为什么 bigquery 确实使用 oauth 2.0 访问令牌来授权请求),通过 google.oauth2.service_account
设置凭据可能会导致权限问题。
【讨论】:
以上是关于Python BigQuery 脚本 bigquery.jobs.create 错误的主要内容,如果未能解决你的问题,请参考以下文章