簡體   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