云函数,用于删除云 SQL 中的数据库



我正在尝试使用云函数删除云sql(postgres(中的数据库,

dbDeleteResp, err := sqladminService.Databases.Delete(projectName, instanceName, dbName).Context(ctx).Do()

并得到以下异常

db=cloudsqladmin,user=cloudsqlagent ERROR: must be owner of database XXXX

是否可以向云SQL代理用户授予删除云SQL中数据库的权限?

如果您查看 Cloud SQL Admin API 文档以了解databases.delete,您将看到它需要 IAM 角色sqlservice.admin。确保此函数的服务帐户具有该角色。

Cloud SQL 是一项托管服务。 您(用户(不拥有数据库。 基仕伯保留幕后的所有权。

要执行所有者级别的活动(例如删除数据库(,您需要通过适当的 GCP API。

根据文档,您可以从云函数进行 REST API 调用来完成此操作:

DELETE https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name

请确保您的云函数服务帐户具有相应的云 SQL 权限!

您有多确定gcloud正在使用您认为的服务帐户?

当您运行gcloud info时,确认您认为它正在使用的项目是正确的项目,然后在您运行gcloud auth login并且您登录时使用的用户具有足够的权限。

另一种方法是使用服务帐户设置gcloud,这里有一个很好的操作方法:https://medium.com/@pnatraj/how-to-run-gcloud-command-line-using-a-service-account-f39043d515b9

正如其他人在他们的评论中所说,您需要的角色/权限是roles/cloudsql.admin

相关内容

  • 没有找到相关文章

最新更新