簡體   English   中英

如何創建可訪問單個數據集的Google BigQuery服務帳戶?

[英]How to create a Google BigQuery service account with access to a single dataset?

有沒有辦法授予對給定客戶端ID的特定BigQuery數據集的只讀訪問權限?

我嘗試過使用服務帳戶,但這樣可以完全訪問所有數據集。

還嘗試從其他應用程序創建服務帳戶,並將與證書一起生成的電子郵件地址添加到BigQuery> Some Dataset> Share Dataset> Can view,但這總是會導致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 = 'XXXXX@developer.gserviceaccount.com'

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)

我基本上試圖提供對基於外部服務器的應用程序的只讀訪問權限到單個數據集。

正如Fh所指出的,需要在創建服務帳戶的Google帳戶中激活BigQuery API,而不管它是否將查詢綁定到不同應用程序ID的BigQuery端點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM