Conectarse a un clúster de bases de datos

De forma predeterminada, un clúster de base de datos solo permite la conexión desde el clúster de usuario y el mismo proyecto.

Para habilitar las conexiones a todos los clústeres de bases de datos de tu proyecto desde otro proyecto, consulta Habilitar conexiones entre proyectos.

Para habilitar las conexiones a un clúster de base de datos desde direcciones IP ajenas a tu organización de GDC, consulta Habilitar conexiones externas.

Inicia sesión en la consola de GDC con una cuenta vinculada al rol project-db-admin para encontrar la siguiente información para conectarte a tu clúster de base de datos. Esta información se encuentra en la sección Conectividad de la página Servicio de base de datos.

En estos pasos se incluye un ejemplo de conexión a la base de datos mediante psql. Los pasos exactos variarán en función del software de cliente que elijas.

Consola

  1. Ve a la sección Conectividad de la página Servicio de base de datos del clúster de base de datos. Esta página incluye lo siguiente:

    • La contraseña de la cuenta de administrador (el nombre de usuario es dbsadmin)
    • Nombre de host y número de puerto del endpoint principal del clúster de la base de datos
    • Si el clúster de bases de datos permite conexiones externas desde fuera de la organización.
    • Un comando psql para conectarse al clúster (para clústeres de bases de datos PostgreSQL y AlloyDB Omni)
    • Cadena para conectarse al clúster con Java Database Connectivity (JDBC) (para clústeres de bases de datos Oracle)
    • Un enlace para descargar el certificado de la autoridad de certificación (AC) del clúster de base de datos
  2. Descarga el certificado de AC desde la consola de GDC en la sección Conectividad de la página Servicio de base de datos de tu clúster de base de datos.

  3. Configura tu cliente para que use el certificado de AC y verifique la base de datos. En el caso de los clientes de psql, asigna a la variable de entorno PGSSLROOTCERT la ruta del archivo de certificado y a la variable de entorno PGSSLMODE el valor que prefieras:

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. Conéctate a la base de datos desde tu software cliente. Si usas psql, ejecuta el siguiente comando:

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

Sustituye las siguientes variables:

  • path/to/: la ruta al certificado accounts_cert.pem.
  • DB_PASSWORD: la contraseña de la consola.
  • DB_HOSTNAME: el nombre de host de la base de datos de la consola.
  • DB_PORT: número de puerto de la base de datos de la consola.
  • DB_USERNAME: el nombre de usuario de la base de datos de la consola.

API

  1. Obtén el endpoint de la base de datos del estado del clúster de la base de datos:

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. Descarga el certificado de CA del secreto de 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 tu cliente para que use el certificado de AC y verifique la base de datos. En el caso de los clientes de psql, puedes definir la variable de entorno PGSSLROOTCERT en la ruta del archivo de certificado y la variable de entorno PGSSLMODE según tus preferencias:

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. Conéctate a la base de datos desde tu software cliente. Si usas psql, ejecuta el siguiente comando:

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

Sustituye las siguientes variables:

  • DBENGINE_NAME: el nombre del motor de la base de datos. Es uno de los valores alloydbomni, postgresql o oracle.
  • USER_PROJECT: el nombre del proyecto de usuario en el que se creó el clúster de base de datos.
  • DBENGINE_SHORT_NAME: el nombre abreviado del motor de la base de datos. Se trata de al (AlloyDB Omni), pg (PostgreSQL) u ora (Oracle).
  • DBCLUSTER_NAME: el nombre del clúster de la base de datos.
  • path/to/: la ruta al certificado de AC de la base de datos.
  • DB_PASSWORD: contraseña de la base de datos del usuario administrador.
  • DB_HOSTNAME: el nombre de host del estado del clúster de la base de datos.
  • DB_PORT: número de puerto de la base de datos del estado del clúster de la base de datos.
  • DB_USERNAME: con el nombre de usuario de la base de datos (el valor predeterminado es dbsadmin).