Jak utworzyć konto usługi Google BigQuery z dostępem do pojedynczego zestawu danych?

Czy istnieje jakikolwiek sposób na przyznanie tylko do odczytu określonego zestawu danych BigQuery danemu identyfikatorowi klienta?

Próbowałem użyć konta usługi, ale daje to pełny dostęp do wszystkich zestawów danych.

Próbowano także utworzyć konto usługi z innej aplikacji i dodano adres e-mail wygenerowany wraz z certyfikatem do widoku BigQuery> Niektóre zestawy danych> Zestaw danych udostępniania> Może, ale zawsze powoduje to błąd 403 „Brak konfiguracji”.

Używam przepływu serwera do serwera opisanego w dokumentacji:

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)

Zasadniczo staram się zapewnić dostęp tylko do odczytu do zewnętrznej aplikacji opartej na serwerze do pojedynczego zestawu danych.

questionAnswers(1)

yourAnswerToTheQuestion