我创建了一个具有角色大查询管理的服务帐户,我使用的是大查询PHP。请告诉我是否需要其他许可?
它给出了一个错误,指出:
服务帐户没有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)
;
发布于 2019-11-15 00:48:31
我在使用用于nodejs的BQ库时遇到了这个问题。
似乎通过CLI将其签名到用户/服务帐户并不总是足够的。我的服务帐户经过身份验证,并在GCP中具有正确的权限,但我仍然获得了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等效程序也会同样工作。
https://stackoverflow.com/questions/47546763
复制相似问题