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 máquina que la aplicación y expone un extremo en localhost que admite el protocolo de cable de PostgreSQL. Traduce el protocolo de cable de PostgreSQL en el protocolo de cable de Spanner, gRPC. Con este proxy ejecutándose de forma local, un cliente de PostgreSQL, como psql, puede conectarse a una base de datos de Spanner de 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, y es compatible con 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 de forma 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 clúster de Kubernetes.
  • En proceso. El código de la aplicación de Java puede usar el archivo JAR suministrado para crear y, luego, iniciar una instancia de PGAdapter.

Para obtener detalles sobre estos métodos, consulta Cómo iniciar PGAdapter.

Autorización con PGAdapter

PGAdapter determina la cuenta de servicio o cualquier otra principal de Identity and Access Management (IAM) que se usará para la conexión. Para ello, examina las credenciales que especificas cuando la inicias. Los permisos de IAM otorgados a esa principal determinan los permisos que la aplicación de conexión tiene en la base de datos.

Cuando usas un control de acceso detallado, tienes la opción de especificar una función de base de datos cuando inicias PGAdapter. Si especificas una función de base de datos, PGAdapter usa un control de acceso detallado cuando envía solicitudes de consultas y declaraciones DML. Esto requiere el permiso de IAM spanner.databases.useRoleBasedAccess y, para las funciones de bases de datos que no sean public, el permiso spanner.databaseRoles.use. Los privilegios otorgados a la función de base de datos determinan las operaciones que puede realizar la aplicación que se conecta. Si no especificas un rol de base de datos, se usan los permisos a nivel de la base de datos que se otorgan a la principal de IAM. Para realizar declaraciones DDL, la principal debe tener el permiso spanner.databases.updateDdl.

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

¿Qué sigue?