2016-10-30 2 views
0

BigQuery에서 다른 서버로 데이터를 가져 오는 앱을 제작하고 있습니다. 그리고 서비스 계정에 대해 genereted 키로 서버 인증에 서버를 사용하려고합니다. 그러나 followig 오류가 발생합니다.google-bigquery 서버 - 서버 인증 실패 - 파이썬

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"> 
+0

v2를 사용하지 않고 v1을 사용합니다. bigquery_service = build ('bigquery', 'v2', credentials = 자격증 명) – colly434

답변

1

당신이 access control document을 읽으면 확실하지? 그렇지 않으면 서비스 계정에 적절한 권한을 부여하십시오. 쿼리를 실행 중이므로 bigquery.user를 부여해야합니다.