Сценарий Python BigQuery bigquery.jobs.create ошибка - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь выполнить простой запрос в Google BigQuery с помощью скрипта Python, но получаю сообщение об ошибке ниже, что в моей учетной записи службы отсутствует разрешение 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;")

Доступ запрещен: Project my-test-project: пользователь my-service-account @ my-test-project.iam.gserviceaccount.com не имеет разрешения bigquery.jobs.create в проекте my-test-project.

1 Ответ

0 голосов
/ 26 октября 2018

Аутентификация клиента с использованием client = bigquery.Client.from_service_account_json("credentials.json") является предпочтительным методом, чтобы избежать ошибок «Отказано в доступе». По той или иной причине (я не уверен, почему, поскольку bigquery использует токены доступа oauth 2.0 для авторизации запросов), установка учетных данных через google.oauth2.service_account может привести к проблемам с разрешениями.

...