Esta página fornece uma visão geral do PGAdapter. Para saber como iniciar o PGAdapter, consulte Como iniciar o PGAdapter.
O PGAdapter é um proxy sidecar, um pequeno aplicativo executado
com o principal para oferecer suporte à comunicação entre a
Interface PostgreSQL para Spanner e o Spanner.
Para aplicativos Java, você pode vincular o PGAdapter ao aplicativo
diretamente sem precisar executá-lo em um processo separado. O PGAdapter foi
projetado para ser executado na mesma máquina que o aplicativo e expõe um
endpoint no localhost que suporta o protocolo de transmissão do PostgreSQL. Ele
converte o protocolo de transmissão do PostgreSQL no protocolo de
transmissão do Spanner, o gRPC. Com esse proxy em execução localmente, um cliente PostgreSQL,
como psql
, pode se conectar a um banco de dados do
Spanner com dialeto PostgreSQL.
O PGAdapter adiciona, no máximo, 0,2 ms de latência. A Interface PostgreSQL tem os mesmos níveis de latência que o GoogleSQL.
O diagrama a seguir mostra como psql
se conecta ao Spanner pelo
PGAdapter.
O PGAdapter oferece suporte a modos de consulta básicos e estendidos e qualquer tipo de dados aceito pela Interface PostgreSQL para o Spanner.
Ambientes de execução do PGAdapter
É possível executar o PGAdapter usando um dos seguintes métodos:
- Independente: o PGAdapter é fornecido como um arquivo JAR e executado de forma independente na JVM.
- Docker O PGAdapter também é empacotado como uma imagem do Docker.
- Cloud Run: o PGAdapter pode ser implantado como um proxy sidecar no Cloud Run.
- Proxy sidecar: um uso típico como proxy sidecar está em um cluster do Kubernetes.
- Em processo: o código do aplicativo Java pode usar o arquivo JAR fornecido para criar e iniciar uma instância do PGAdapter.
Para mais detalhes sobre esses métodos, consulte Iniciar o PGAdapter.
Autorização com o PGAdapter
O PGAdapter determina a conta de serviço ou outro principal do Identity and Access Management (IAM) a ser usado para a conexão examinando as credenciais especificadas ao iniciá-lo. As permissões do IAM concedidas a esse participante determinam as permissões que o aplicativo de conexão tem no banco de dados.
Quando o controle de acesso detalhado está em uso, você pode especificar uma
função de banco de dados ao iniciar o PGAdapter. Se você especificar um papel de banco de dados,
o PGAdapter vai usar o controle de acesso detalhado ao enviar solicitações de consultas
e instruções DML. Isso requer a permissão spanner.databases.useRoleBasedAccess
do IAM e, para papéis de banco de dados diferentes de public
, a permissão spanner.databaseRoles.use
. Os privilégios concedidos ao
papel do banco de dados determinam as operações que o aplicativo de conexão pode
realizar. Se você não especificar um papel de banco de dados, as permissões
no nível do banco de dados concedidas ao principal do IAM serão usadas. Para executar instruções DDL, o principal precisa ter a
permissão spanner.databases.updateDdl
.
Saiba mais em Sobre o controle de acesso detalhado e Controle de acesso com o IAM.
A seguir
- Iniciar o PGAdapter
- Saiba mais sobre o repositório do GitHub do PGAdapter.
- Saiba mais sobre drivers e ORMs do PostgreSQL para conferir uma tabela de drivers e ORMs do PostgreSQL com suporte do PGAdapter.