google-bigquery服务器到服务器验证失败 - python

时间:2016-10-30 19:43:56

标签: python google-bigquery

我正在构建将BigQuery数据传输到另一台服务器的应用程序。并尝试使用服务器服务器auth与服务帐户的genereted键。 但是收到了跟随错误。

import json

from httplib2 import Http
import argparse
from oauth2client.client import GoogleCredentials
from googleapiclient.errors import HttpError
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

scopes = ['https://www.googleapis.com/auth/sqlservice.admin']
credentials = ServiceAccountCredentials.from_json_keyfile_name(
    'credentials_bq.json', scopes)
bigquery_service = build('bigquery', 'v1', credentials=credentials)


query_request = bigquery_service.jobs()
query_data = {
    'query': (
        'select count( distinct meta_id) from  [..table.name] '
        'where MSEC_TO_TIMESTAMP(meta_serverTs) >= \'2016-10-28 10:00:00 UTC\'')
}



query_response = query_request.query(
    projectId='my_project_id',
    body=query_data).execute()

返回错误:

Traceback (most recent call last):
  File "test_connection_bq.py", line 35, in <module>
    body=query_data).execute()
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/googleapiclient/http.py", line 838, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/bigquery/v2/projects/my_project_id/queries?alt=json returned "Insufficient Permission">

1 个答案:

答案 0 :(得分:1)

不确定您是否阅读了access control document?如果没有,请仔细检查并授予服务帐户相应的权限。由于您正在运行查询,因此应该授予bigquery.user。