Descripción general de PGAdapter

En esta página, se proporciona una descripción general de PGAdapter. Para aprender a iniciar PGAdapter, consulta Cómo iniciar PGAdapter.

PGAdapter es un proxy de sidecar que admite la Interfaz de PostgreSQL para Spanner. Se ejecuta en la misma como la aplicación y expone un extremo en localhost que admite el protocolo de cable de PostgreSQL. Traduce el código de PostgreSQL protocolo de cable al protocolo de cable de Spanner, gRPC. Con este proxy que se ejecuta de forma local, un cliente PostgreSQL como psql puede conectarse a un Base de datos de Spanner del dialecto de PostgreSQL.

En el siguiente diagrama, se muestra cómo psql se conecta a Spanner a través de PGAdapter.

psql se conecta a Spanner a través de PGAdapter

PGAdapter admite modos de consulta simples y extendidos. admite cualquier tipo de datos que admita la interfaz de PostgreSQL para Spanner.

Entornos de ejecución de PGAdapter

Puedes ejecutar PGAdapter usando uno de los siguientes métodos:

  • Independiente. PGAdapter se suministra como un archivo JAR y se ejecuta independiente en la JVM.
  • Docker PGAdapter también se empaqueta como una imagen de Docker.
  • Cloud Run. PGAdapter se puede implementar como un proxy de sidecar en Cloud Run.
  • Proxy de sidecar. Un uso típico como proxy de sidecar se da en un entorno clúster.
  • En proceso. El código de la aplicación de Java puede usar el archivo JAR proporcionado para crear y, luego, iniciar una instancia de PGAdapter.

Para obtener información detallada sobre estos métodos, consulta Inicia PGAdapter.

Autorización con PGAdapter

PGAdapter determina la cuenta de servicio u otra Identity and Access Management (IAM) principal para usar en la conexión mediante el análisis del y las credenciales que especificas cuando lo inicias. La API de IAM permisos otorgados a esa principal determinan los permisos que la que la aplicación que se conecta tiene en la base de datos.

Cuando usas un control de acceso detallado, puedes especificar el rol de base de datos cuando inicias PGAdapter. Si especificas un rol de base de datos, PGAdapter usa un control de acceso detallado cuando envía solicitudes y declaraciones DML. Esto requiere el permiso de IAM spanner.databases.useRoleBasedAccess y, para roles de base de datos que no sean public es el permiso spanner.databaseRoles.use. Los privilegios otorgados a el rol de base de datos determinan las operaciones que la aplicación conectada puede realizar. Si no especificas un rol de base de datos, entonces, el rol permisos que se otorgan a la cuenta de IAM principal. Para realizar declaraciones DDL, la principal debe tener lo siguiente: spanner.databases.updateDdl.

Para obtener más información, consulta Acerca del control de acceso detallado y Control de acceso con la IAM.

¿Qué sigue?