連線至資料庫叢集

根據預設,資料庫叢集只允許從使用者叢集和相同專案內連線。

如要啟用從其他專案連至專案中所有資料庫叢集的連線,請參閱「啟用跨專案連線」。

如要允許從 GDC 組織外部的 IP 位址連線至資料庫叢集,請參閱「啟用外部連線」。

使用繫結至資料庫專案管理員角色的帳戶登入 GDC 控制台,找出下列資訊,以便連線至資料庫叢集。這項資訊位於「Database Service」(資料庫服務) 頁面的「Connectivity」(連線能力) 區段。

這些步驟包含使用 psql 連線至資料庫的範例。確切步驟會因您選擇的用戶端軟體而異。

控制台

  1. 前往資料庫叢集的「Database Service」(資料庫服務) 頁面,然後前往「Connectivity」(連線) 區段。本頁面收錄了:

    • 管理員帳戶的密碼 (使用者名稱為 dbsadmin)
    • 資料庫叢集主要端點的主機名稱和通訊埠號碼
    • 資料庫叢集是否允許來自組織外部的連線。
    • 用於連線至叢集的 psql 指令
    • 點選這個連結,即可下載資料庫叢集的憑證授權單位 (CA) 憑證
  2. 在 GDC 控制台,前往資料庫叢集的「Database Service」(資料庫服務) 頁面,然後在「Connectivity」(連線) 區段下載 CA 憑證。

  3. 設定用戶端使用 CA 憑證驗證資料庫。如果是 psql 用戶端,請將 PGSSLROOTCERT 環境變數設為憑證檔案的路徑,並將 PGSSLMODE 環境變數設為偏好設定:

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. 從用戶端軟體連線至資料庫。如果您使用的是 psql,請執行下列指令:

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

請替換下列變數:

  • path/to/:accounts_cert.pem 憑證的路徑。
  • DB_PASSWORD:控制台中的密碼。
  • DB_HOSTNAME:控制台中的資料庫主機名稱。
  • DB_PORT:控制台中的資料庫通訊埠編號。
  • DB_USERNAME:控制台中的資料庫使用者名稱。

API

  1. 從資料庫叢集狀態擷取資料庫端點:

    kubectl get dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. 從 Kubernetes 密鑰下載 CA 憑證:

    kubectl get secret dbs-certificates -n USER_PROJECT -o json | jq -r '.data."dbs-pg-cert-DBCLUSTER_NAME"' | base64 -d > path/to/ca.crt
    
  3. 設定用戶端使用 CA 憑證驗證資料庫。如果是 psql 用戶端,您可以將 PGSSLROOTCERT 環境變數設為憑證檔案的路徑,並將 PGSSLMODE 環境變數設為偏好設定:

    export PGSSLROOTCERT=path/to/ca.crt
    export PGSSLMODE="verify-full"
    
  4. 從用戶端軟體連線至資料庫。如果您使用的是 psql,請執行下列指令:

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p DB_PORT -U DB_USERNAME -d postgres
    

請替換下列變數:

  • USER_PROJECT:建立資料庫叢集的使用者專案名稱。
  • DBCLUSTER_NAME:資料庫叢集的名稱。
  • path/to/:資料庫 CA 憑證的路徑。
  • DB_PASSWORD:管理員使用者的資料庫密碼。
  • DB_HOSTNAME:資料庫叢集狀態的主機名稱。
  • DB_PORT:資料庫叢集狀態中的資料庫通訊埠號碼。
  • DB_USERNAME:資料庫使用者名稱 (預設為 dbsadmin)。