連線至資料庫叢集

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

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

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

使用繫結至 project-db-admin 角色的帳戶登入 GDC 控制台,找出連線至資料庫叢集所需的資訊。這項資訊位於「Database Service」(資料庫服務) 頁面的「連線能力」部分。

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

控制台

  1. 前往資料庫叢集的「Database Service」(資料庫服務) 頁面,然後找到「Connectivity」(連線) 部分。本頁面包含:

    • 管理員帳戶的密碼 (使用者名稱為 dbsadmin)
    • 資料庫叢集主要端點的主機名稱和通訊埠號碼
    • 資料庫叢集允許機構外部的外部連線。
    • 用於連線至叢集的 psql 指令 (適用於 PostgreSQL 和 AlloyDB Omni 資料庫叢集)
    • 用於透過 Java Database Connectivity (JDBC) 連線至叢集的字串 (適用於 Oracle 資料庫叢集)
    • 下載資料庫叢集憑證授權單位 (CA) 憑證的連結
  2. 在資料庫叢集的「Database Service」(資料庫服務) 頁面,前往「Connectivity」(連線) 部分,從 GDC 控制台下載 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.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. 從 Kubernetes Secret 下載 CA 憑證:

    kubectl get secret dbs-certificates -n USER_PROJECT -o json | jq -r '.data."dbs-DBENGINE_SHORT_NAME-cert-DBCLUSTER_NAME"' | base64 -d > path/to/ca.crt
    
  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 DB_PORT -U DB_USERNAME -d postgres
    

請替換下列變數:

  • DBENGINE_NAME:資料庫引擎的名稱。這是 alloydbomnipostgresqloracle
  • USER_PROJECT:建立資料庫叢集的使用者專案名稱。
  • DBENGINE_SHORT_NAME:資料庫引擎的縮寫名稱。這是 al (AlloyDB Omni)、pg (PostgreSQL) 或 ora (Oracle) 其中之一。
  • DBCLUSTER_NAME:資料庫叢集的名稱。
  • path/to/:資料庫 CA 憑證的路徑。
  • DB_PASSWORD:管理員使用者的資料庫密碼。
  • DB_HOSTNAME:資料庫叢集狀態中的主機名稱。
  • DB_PORT:資料庫叢集狀態中的資料庫通訊埠號碼。
  • DB_USERNAME:資料庫使用者名稱 (預設為 dbsadmin)。