我创建了一个角色大查询admin的服务帐户。我正在使用大查询PHP API。如果需要其他任何许可,请告诉我?
它给出了一个错误陈述:
服务帐户没有bigquery.jobs.create权限。
我想在bigquery上运行查询。请帮忙。
以下是我的代码:
$service = new Google_Service_Bigquery($client);
$query = new Google_Service_Bigquery_QueryRequest($client);
$query->setQuery('SELECT * FROM [xxx:xxx.xxs] LIMIT 1000;');
$jobs = $service->jobs;
$response = $jobs->query($project_id, $query);
// Do something with the BigQuery API $response data
print_r($response)
;
答案 0 :(得分:0)
我在使用针对Node.js的BQ库时遇到了这个问题。
通过CLI登录到用户/服务帐户似乎并不总是足够的。我的服务帐户已通过身份验证,并且在GCP SDK Shell中具有正确的权限,但是我仍然得到service account does not have bigquery.jobs.create permission.
。
我能够通过使用客户端库方法简单地添加相同的服务帐户详细信息来解决此问题。我使用了https://googleapis.dev/nodejs/bigquery/latest/BigQuery.html。
对于nodejs,我只需要添加
// Imports BigQuery library
const {BigQuery} = require('@google-cloud/bigquery');
// Create BQ Options - this object is what fixed the issue
const bqOptions = {};
bqOptions.projectId = '*your-project-name*';
bqOptions.keyFilename = '*Path-to-service-account-private-key*';
// Creates BQ client
const bq = new BigQuery(bqOptions);
我知道您正在使用PHP库,但是我认为等效的PHP可以相同。