Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 错误:服务帐户没有bigquery.jobs.create权限_Php_Api_Google Bigquery - Fatal编程技术网

Php 错误:服务帐户没有bigquery.jobs.create权限

Php 错误:服务帐户没有bigquery.jobs.create权限,php,api,google-bigquery,Php,Api,Google Bigquery,我创建了一个名为BigQueryAdmin的服务帐户。我正在使用BigQueryPHPAPI。请告诉我是否需要任何其他许可 它给了我一个错误,指出: 服务帐户没有bigquery.jobs.create权限 我想在bigquery上运行一个查询。请帮忙 以下是我的代码: $service = new Google_Service_Bigquery($client); $query = new Google_Service_Bigquery_QueryRequest($cli

我创建了一个名为BigQueryAdmin的服务帐户。我正在使用BigQueryPHPAPI。请告诉我是否需要任何其他许可

它给了我一个错误,指出:

服务帐户没有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)

;

我在使用nodejs的BQ库时遇到了这个问题

似乎通过CLI登录到用户/服务帐户并不总是足够的。我的服务帐户已通过身份验证,并且在GCP SDK外壳中拥有正确的权限,但我仍然得到
服务帐户没有bigquery.jobs.create权限。

我可以通过使用客户端库方法简单地添加相同的服务帐户详细信息来解决这个问题。我用过

对于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等价物也可以使用。

我在使用用于nodejs的BQ库时遇到了这个问题

似乎通过CLI登录到用户/服务帐户并不总是足够的。我的服务帐户已通过身份验证,并且在GCP SDK外壳中拥有正确的权限,但我仍然得到
服务帐户没有bigquery.jobs.create权限。

我可以通过使用客户端库方法简单地添加相同的服务帐户详细信息来解决这个问题。我用过

对于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等效库也可以使用。

Admin应该具有
bigquery.jobs.create
权限。您确定a)使用的是正确的,b)分配的IAM正确吗?是的,我使用的是具有管理员权限的正确服务帐户。正确的项目?管理员应该具有
bigquery.jobs。创建
权限。您确定a)使用的是正确的,b)分配的IAM正确吗?是的,我使用的是具有管理员权限的正确服务帐户。正确的项目?