Сценарий Python BigQuery bigquery.jobs.create ошибка
Я пытаюсь выполнить простой запрос в Google BigQuery с помощью сценария Python, но получаю сообщение об ошибке ниже, что отсутствует в моей учетной записи службы bigquery.jobs.create
разрешение.
Моя учетная запись службы имеет следующие роли:
- владелец
- BigQuery Admin
- BigQuery Job User
Я также попытался создать пользовательскую роль с 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 @ my-test-project. iam.gserviceaccount.com не имеет разрешения bigquery.jobs.create в проекте my-test-project.
1 ответ
Аутентификация клиента с использованием client = bigquery.Client.from_service_account_json("credentials.json")
является предпочтительным методом, чтобы избежать ошибок "Отказано в доступе". По той или иной причине (я не уверен, почему, поскольку bigquery использует токены доступа oauth 2.0 для авторизации запросов), установка учетных данных осуществляется через google.oauth2.service_account
может привести к проблемам с разрешением.