Python BigQuery 脚本 bigquery.jobs.create 错误

Python BigQuery script bigquery.jobs.create error

我正在尝试 运行 通过 python 脚本在 Google BigQuery 上进行简单查询,但收到以下错误消息,表明我的服务帐户丢失 bigquery.jobs.create允许。

我的服务帐户应用了以下角色:

我也尝试过使用 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;")

Access Denied: Project my-test-project: The user my-service-account @ my-test-project. iam.gserviceaccount.com does not have bigquery.jobs.create permission in project my-test-project.

使用 client = bigquery.Client.from_service_account_json("credentials.json") 验证客户端是避免 "Access Denied" 错误的首选方法。出于某种原因(我不确定为什么因为 bigquery 确实使用 oauth 2.0 访问令牌来授权请求​​),通过 google.oauth2.service_account 设置凭据可能会导致权限问题。