Connettersi a un cluster di database

Per impostazione predefinita, un cluster di database consente la connessione solo dall'interno del cluster utente e dello stesso progetto.

Per abilitare le connessioni a tutti i cluster di database nel tuo progetto da un altro progetto, consulta Abilitare le connessioni tra progetti.

Per abilitare le connessioni a un cluster di database da indirizzi IP esterni alla tua organizzazione GDC, consulta Abilitare le connessioni esterne.

Accedi alla console GDC con un account associato al ruolo project-db-admin per trovare le seguenti informazioni per la connessione al tuo cluster di database. Queste informazioni si trovano nella sezione Connettività della pagina Database Service.

Questi passaggi includono un esempio di connessione al database utilizzando psql. I passaggi esatti variano a seconda del software client scelto.

Console

  1. Vai alla sezione Connettività della pagina Database Service per il cluster di database. Questa pagina include:

    • La password dell'account amministratore (il nome utente è dbsadmin)
    • Nome host e numero di porta dell'endpoint principale del cluster di database
    • Se il cluster di database consente la connessione esterna dall'esterno dell'organizzazione.
    • Un comando psql per connettersi al cluster (per i cluster di database PostgreSQL e AlloyDB Omni)
    • Una stringa per la connessione al cluster con Java Database Connectivity (JDBC) (per i cluster di database Oracle)
    • Un link per scaricare il certificato dell'autorità di certificazione (CA) del cluster di database
  2. Scarica il certificato CA dalla console GDC nella sezione Connettività della pagina Database Service per il tuo cluster di database.

  3. Configura il client in modo che utilizzi il certificato CA per verificare il database. Per i client psql, imposta la variabile di ambiente PGSSLROOTCERT sul percorso del file del certificato e la variabile di ambiente PGSSLMODE sulla tua preferenza:

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. Connettiti al database dal software client. Se utilizzi psql, esegui questo comando:

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

Sostituisci le seguenti variabili:

  • path/to/: il percorso del certificato accounts_cert.pem.
  • DB_PASSWORD: la password dalla console.
  • DB_HOSTNAME: il nome host del database dalla console.
  • DB_PORT: il numero di porta del database dalla console.
  • DB_USERNAME: il nome utente del database dalla console.

API

  1. Recupera l'endpoint del database dallo stato del cluster di database:

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. Scarica il certificato CA dal secret Kubernetes:

    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. Configura il client in modo che utilizzi il certificato CA per verificare il database. Per i client psql, puoi impostare la variabile di ambiente PGSSLROOTCERT sul percorso del file del certificato e la variabile di ambiente PGSSLMODE sulla tua preferenza:

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. Connettiti al database dal software client. Se utilizzi psql, esegui questo comando:

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

Sostituisci le seguenti variabili:

  • DBENGINE_NAME: il nome del motore del database. Si tratta di uno dei seguenti valori: alloydbomni, postgresql o oracle.
  • USER_PROJECT: il nome del progetto utente in cui è stato creato il cluster di database.
  • DBENGINE_SHORT_NAME: il nome abbreviato del motore del database. Si tratta di uno dei seguenti: al (AlloyDB Omni), pg (PostgreSQL) o ora (Oracle).
  • DBCLUSTER_NAME: il nome del cluster di database.
  • path/to/: il percorso del certificato CA del database.
  • DB_PASSWORD: password del database per l'utente amministratore.
  • DB_HOSTNAME: il nome host dallo stato del cluster di database.
  • DB_PORT: il numero di porta del database dallo stato del cluster di database.
  • DB_USERNAME: con il nome utente del database (il valore predefinito è dbsadmin).