我想在新建的项目中创建Bigquery和Cloud SQL(MySQL 5.7(之间的连接!(不在现有的项目中,我可以在现有项目中创建连接,没有问题(
这是我使用的命令
bq mk --connection --connection_type='CLOUD_SQL' --properties='{"instanceId":"<PROJECT ID>:<REGION>:<MYSQL INSTANCE>","database":"<MY DATABASE>","type":"MYSQL"}' --connection_credential='{"username":"root", "password":"<PASSWORD>"}' --project_id=<PROJECT ID> --location=<REGION> <MYSQL INSTANCE>
但是我得到了下面的错误
BigQuery error in mk operation: Access Denied: URI: services/bigqueryconnection.googleapis.com/projects/<PROJECT ID>:
APPLICATION_ERROR;google.api.serviceconsumermanagement.v1beta1/ServiceConsumerManagerV1Beta1.GenerateServiceIdentity;Permission denied to generate service identity for service
[bigqueryconnection.googleapis.com]
Details: [{
IAM{policy: 'serviceconsumermanagement_consumers-/000000555846b828/bigqueryconnection.googleapis.com/000000b742218216' resource: 'services/bigqueryconnection.googleapis.com/consumers/<PROJECT ID>'
permission: 'serviceconsumermanagement.consumers.generateServiceAccount'}
allowed: false auditlog: false cloudaudit: false
}]
...
...
经过大量研究,我认为问题可能是我没有像这样的角色BigQuery Connection Service agent
的服务帐户。因为我在另一个项目中有这种服务帐户。
service-<project id>@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
我真的不知道这个服务帐户是如何创建的,也许通过启用Bigquery Connection API服务,我会创建一个如上所述的服务帐户。
虽然已经启用了bigquery连接API,但我取消了它,然后再次启用了它。但是服务帐户仍然没有被创建。
有人知道这个问题吗?非常感谢。
更新:
对不起,我忘了说我已经有bigquery管理员/bigquery连接管理员/云sql管理员权限
您需要授予bigquery.admin
访问权限。文档链接
gcloud projects add-iam-policy-binding project_id
--member group/user:address
--role roles/bigquery.admin
示例:
$ bq mk --connection --connection_type='CLOUD_SQL' --properties='{"instanceId":"data-lab:us-east1:instance-mysql","database":"information_schema","type":"MYSQL"}' --connection_credential='{"username":"root", "password":"*****"}' --project_id=data-lab --location=us MyExternalSQL
Connection 906721254566.us.MyExternalSQL successfully created
当您启用BigQuery Connection API时,应自动代表您创建一个服务帐户,该帐户具有以下角色:
cloudsql.client
logging.logWriter
metrics.metricWriter
要创建和维护连接资源,用户必须具有bigquery.admin预定义角色,如@Soumendra所述。
检查文档云SQL联合查询
我启用了API,但没有创建服务帐户。
请检查Document BigQuery Connection API客户端库以创建该服务帐户。
完成后,尝试连接。