データベース クラスタに接続する

デフォルトでは、データベース クラスタは ユーザー クラスタ内と同一プロジェクトからの接続のみを許可します。

別のプロジェクトからプロジェクト内のすべてのデータベース クラスタへの接続を有効にするには、プロジェクト間の接続を有効にするをご覧ください。

GDC 組織外の IP アドレスからデータベース クラスタへの接続を有効にするには、外部接続を有効にするをご覧ください。

プロジェクト DB 管理者ロールにバインドされたアカウントで GDC コンソールにログインして、データベース クラスタに接続するための次の情報を確認します。この情報は、[データベース サービス] ページの [接続] セクションにあります。

次の手順では、psql を使用してデータベースに接続する例を示します。具体的な手順は、選択するクライアント ソフトウェアによって異なります。

コンソール

  1. データベース クラスタの [データベース サービス] ページの [接続] セクションに移動します。このページには次の情報が表示されます。

    • 管理者アカウントのパスワード(ユーザー名は dbsadmin
    • データベース クラスタのプライマリ エンドポイントのホスト名とポート番号
    • データベース クラスタが組織外からの外部接続を許可しているかどうか
    • クラスタに接続するための psql コマンド(PostgreSQL および AlloyDB Omni データベース クラスタの場合)
    • Java Database Connectivity(JDBC)を使用してクラスタに接続するための文字列(Oracle データベース クラスタの場合)
    • データベース クラスタの認証局(CA)証明書をダウンロードするためのリンク
  2. データベース クラスタの [データベース サービス] ページの [接続] セクションで、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/ca.crt
    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)。