Verbindung zu einem Datenbankcluster herstellen

Standardmäßig sind Verbindungen zu einem Datenbankcluster nur innerhalb des Nutzerclusters und desselben Projekts zulässig.

Informationen zum Aktivieren von Verbindungen zu allen Datenbankclustern in Ihrem Projekt von einem anderen Projekt aus finden Sie unter Projektübergreifende Verbindungen aktivieren.

Informationen zum Aktivieren von Verbindungen zu einem Datenbankcluster von IP-Adressen außerhalb Ihrer GDC-Organisation finden Sie unter Externe Verbindungen aktivieren.

Melden Sie sich in der GDC-Konsole mit einem Konto an, das mit der Rolle „Project DB Admin“ verknüpft ist, um die folgenden Informationen zum Herstellen einer Verbindung zu Ihrem Datenbankcluster zu finden. Diese Informationen finden Sie auf der Seite Database Service im Bereich Connectivity.

Diese Schritte enthalten ein Beispiel für das Herstellen einer Verbindung zur Datenbank mit psql. Die genauen Schritte variieren je nach ausgewählter Clientsoftware.

Console

  1. Wechseln Sie auf der Seite Database Service für den Datenbankcluster zum Bereich Connectivity. Diese Seite enthält Folgendes:

    • Das Passwort des Administratorkontos (der Nutzername ist dbsadmin)
    • Hostname und Portnummer des primären Endpunkts des Datenbankclusters
    • Ob der Datenbankcluster externe Verbindungen von außerhalb der Organisation zulässt
    • Ein psql-Befehl zum Herstellen einer Verbindung zum Cluster
    • Ein Link zum Herunterladen des Zertifikats der Zertifizierungsstelle (Certificate Authority, CA) des Datenbankclusters
  2. Laden Sie das CA-Zertifikat in der GDC-Konsole auf der Seite Database Service für Ihren Datenbankcluster im Bereich Connectivity herunter.

  3. Konfigurieren Sie Ihren Client so, dass er das CA-Zertifikat verwendet, um die Datenbank zu überprüfen. Legen Sie für psql-Clients die Umgebungsvariable PGSSLROOTCERT auf den Pfad der Zertifikatsdatei und die Umgebungsvariable PGSSLMODE auf Ihre bevorzugte Einstellung fest:

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. Stellen Sie über Ihre Clientsoftware eine Verbindung zur Datenbank her. Wenn Sie psql verwenden, führen Sie den folgenden Befehl aus:

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

Ersetzen Sie die folgenden Variablen:

  • path/to/: der Pfad zum Zertifikat accounts_cert.pem.
  • DB_PASSWORD: das Passwort aus der Konsole.
  • DB_HOSTNAME: der Datenbankhostname aus der Konsole.
  • DB_PORT: die Datenbankportnummer aus der Konsole.
  • DB_USERNAME: der Datenbanknutzername aus der Konsole.

API

  1. Rufen Sie den Datenbankendpunkt aus dem Status des Datenbankclusters ab:

    kubectl get dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. Laden Sie das CA-Zertifikat aus dem Kubernetes-Secret herunter:

    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. Konfigurieren Sie Ihren Client so, dass er das CA-Zertifikat verwendet, um die Datenbank zu überprüfen. Legen Sie für psql-Clients die Umgebungsvariable PGSSLROOTCERT auf den Pfad der Zertifikatsdatei und die Umgebungsvariable PGSSLMODE auf Ihre bevorzugte Einstellung fest:

    export PGSSLROOTCERT=path/to/ca.crt
    export PGSSLMODE="verify-full"
    
  4. Stellen Sie über Ihre Clientsoftware eine Verbindung zur Datenbank her. Wenn Sie psql verwenden, führen Sie den folgenden Befehl aus:

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

Ersetzen Sie die folgenden Variablen:

  • USER_PROJECT: der Name des Nutzerprojekts, in dem der Datenbankcluster erstellt wurde.
  • DBCLUSTER_NAME: der Name des Datenbankclusters.
  • path/to/: der Pfad zum CA-Zertifikat der Datenbank.
  • DB_PASSWORD: das Datenbankpasswort für den Administratornutzer.
  • DB_HOSTNAME: der Hostname aus dem Status des Datenbankclusters.
  • DB_PORT: die Datenbankportnummer aus dem Status des Datenbankclusters.
  • DB_USERNAME: der Datenbanknutzername (Standard ist dbsadmin).