繁体   English   中英

从 Gcloud 中的 MySQL 导出数据库表时出现未经身份验证的用户错误

[英]Unathenticated user error when exporting database table from MySQL in Gcloud

我在我的 gcloud cmd shell 中运行以下代码,旨在将特定表从我的数据库导出到存储桶:

gcloud sql export sql databasen gs://my_bucket/file_nam,e.sql --async --database=database--table=table --offload

我不断收到错误消息:

{
  "error": {
    "code": 401,
    "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "errors": [
      {
        "message": "Login Required.",
        "domain": "global",
        "reason": "required",
        "location": "Authorization",
        "locationType": "header"
      }
    ],
    "status": "UNAUTHENTICATED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "CREDENTIALS_MISSING",
        "domain": "googleapis.com",
        "metadata": {
          "method": "google.cloud.sql.v1beta4.SqlOperationsService.Get",
          "service": "sqladmin.googleapis.com"
        }
      }
    ]
  }

我已经在 shell 中使用gcloud auth login对自己进行了身份验证,并将 CloudAdmin IAM 权限授予了 sql 实例的服务帐户。 我还启用了所有 cloudsql 云 API。

我很茫然,很感激这里的任何方向。 谢谢!

您的应用程序发送到云 SQL 管理员 API 的每个请求都需要向 Google 识别您的应用程序。
如果您没有正确设置 OAuth header,就会发生此错误。要解决此问题,请重复这些步骤以验证您的初始设置 当您从本地计算机运行代码时,您需要使用以下身份验证方法之一使您自己的 OAuth 令牌可供代码访问:
- 使用服务帐户
创建服务帐户并下载 JSON 密钥。 GOOGLE_APPLICATION_CREDENTIALS环境变量设置为下载的服务帐户密钥文件 (JSON) 的路径。 您使用的相同google.auth.default 文档代码还会检查此特殊环境变量以查找设置 JSON OAuth 令牌并自动使用它。
您可以通过运行以下命令检查服务帐户是否是实例上的活动帐户: gcloud auth list

我还建议您查看Export SQL的官方文档和Best Practices还请检查这些示例以了解类似的实现:

GCloud Coud SQL Postgres:“错误:表的权限被拒绝<div id="text_translate"><p>我在 Google Cloud SQL 中有一个由用户“api”创建的 postgres 数据库。 现在我想使用我自己的用户读取该数据库上的一些数据。 我可以连接到数据库,但是当我运行时</p><pre>SELECT * FROM data;</pre><p> 我得到错误:</p><pre> ERROR: permission denied for table data</pre><hr><p> 编辑</p><p>我尝试GRANT ALL PRIVILEGES ON DATABASE website TO sev; 但这没有用。 定义数据库的 SQL 如下所示:</p><pre> CREATE DATABASE website WITH OWNER = cloudsqlsuperuser ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF8' LC_CTYPE = 'en_US.UTF8' TABLESPACE = pg_default CONNECTION LIMIT = -1; GRANT ALL ON DATABASE website TO cloudsqlsuperuser; GRANT TEMPORARY, CONNECT ON DATABASE website TO PUBLIC; GRANT ALL ON DATABASE website TO sev;</pre></div>"<table> </table>

[英]GCloud Coud SQL Postgres: "ERROR: permission denied for table <table>"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将表从 Google BigQuery 导出到 Google Cloud Storage 时出现权限错误 安装 gcloud 时如何解决“CERTIFICATE_VERIFY_FAILED”错误? 尝试获取 iam-policy gcloud 时出错 从命令行激活 gcloud 服务帐户时出错 从 GCP gcloud 部署时出现 Terraform 权限问题 使用 gcloud 报告 Stackdriver 错误 使用通配符选项从 BigQuery 导出到 GCS 时,有没有办法从大表中获取生成的文件列表? GCloud Coud SQL Postgres:“错误:表的权限被拒绝<div id="text_translate"><p>我在 Google Cloud SQL 中有一个由用户“api”创建的 postgres 数据库。 现在我想使用我自己的用户读取该数据库上的一些数据。 我可以连接到数据库,但是当我运行时</p><pre>SELECT * FROM data;</pre><p> 我得到错误:</p><pre> ERROR: permission denied for table data</pre><hr><p> 编辑</p><p>我尝试GRANT ALL PRIVILEGES ON DATABASE website TO sev; 但这没有用。 定义数据库的 SQL 如下所示:</p><pre> CREATE DATABASE website WITH OWNER = cloudsqlsuperuser ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF8' LC_CTYPE = 'en_US.UTF8' TABLESPACE = pg_default CONNECTION LIMIT = -1; GRANT ALL ON DATABASE website TO cloudsqlsuperuser; GRANT TEMPORARY, CONNECT ON DATABASE website TO PUBLIC; GRANT ALL ON DATABASE website TO sev;</pre></div>"<table> </table> 是什么导致 Google gcloud 错误消息“错误:(gcloud)无效选择:'gcloud'”以及如何解决这个问题? Python 来自 CloudRun 容器实例的 gCloud 计费 API 出现 404 错误
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM