Google Cloud SQL导入 - HTTPError 403:权限不足

时间:2017-01-19 11:53:48

标签: google-cloud-sql

我想用gcloud导入工具将mysql转储文件导入mysql数据库实例,但是我收到错误:

ubuntu@machine:~/sql$ gcloud sql instances import sql-56-test-8ef0cb104575 gs://dbf/bt_ca_dev_tmp-2017-01-19.sql.gz
ERROR: (gcloud.sql.instances.import) HTTPError 403: Insufficient Permission

我错过了哪些确切的权限?我可以使用注册的服务帐户创建sql实例,但我无法导入数据?

2 个答案:

答案 0 :(得分:1)

您的权限有问题

如果没有,创建一个存储桶,运行

`gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]`

描述您要从中导出的sql实例并复制sa

`gcloud sql instances describe [INSTANCE_NAME]`

以编写者身份将服务帐户添加到存储桶ACL

`gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]`

将服务帐户作为读取者添加到导入文件中

`gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:R gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]`

导入文件: gcloud sql import csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \ --database=[DATABASE_NAME] --table=[TABLE_NAME]

答案 1 :(得分:0)

根据documentation,这应该可以解决问题。奇怪的是它需要写权限。这应该可以解决问题:

gsutil iam ch serviceAccount:"${SERVICE_ACCOUNT}":roles/storage.legacyBucketWriter gs://${BUCKET_NAME}
gsutil iam ch serviceAccount:"${SERVICE_ACCOUNT}":roles/storage.objectViewer gs://${BUCKET_NAME}