Как создать учетную запись службы Google BigQuery с доступом к одному набору данных?
Есть ли способ предоставить доступ только для чтения к определенному набору данных BigQuery для данного идентификатора клиента?
Я пытался использовать служебную учетную запись, но это дает полный доступ ко всем наборам данных.
Также попытался создать учетную запись службы из другого приложения и добавил адрес электронной почты, созданный вместе с сертификатом, в представление BigQuery> Some Dataset> Share Dataset> Can, но это всегда приводит к ошибке 403 «Access not Configured».
Я использую серверный серверный поток, описанный в документации:
import httplib2
from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials
# REPLACE WITH YOUR Project ID
PROJECT_NUMBER = 'XXXXXXXXXXX'
# REPLACE WITH THE SERVICE ACCOUNT EMAIL FROM GOOGLE DEV CONSOLE
SERVICE_ACCOUNT_EMAIL = '[email protected]'
f = file('key.p12', 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
key,
scope='https://www.googleapis.com/auth/bigquery.readonly')
http = httplib2.Http()
http = credentials.authorize(http)
service = build('bigquery', 'v2')
tables = service.tables()
response = tables.list(projectId=PROJECT_NUMBER, datasetId='SomeDataset').execute(http)
print(response)
Я в основном пытаюсь предоставить доступ только для чтения к приложению внешнего сервера к одному набору данных.