Visão geral do PGAdapter

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 compatível com os Interface PostgreSQL para o Spanner. Ele é executado no mesmo máquina virtual como o aplicativo e expõe um endpoint no localhost que dá suporte o protocolo com fio do PostgreSQL. Ele converte a linguagem PostgreSQL para o protocolo de conexão do Spanner, o gRPC. Com este proxy em execução localmente, um cliente PostgreSQL como psql pode se conectar a uma Banco de dados do Spanner com o dialeto PostgreSQL.

O diagrama a seguir mostra como psql se conecta ao Spanner pelo PGAdapter.

O psql se conecta ao Spanner pelo PGAdapter

O PGAdapter oferece suporte aos modos de consulta simples e estendido. oferece suporte a qualquer tipo de dados compatível com a 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 autônomo na JVM.
  • Docker O PGAdapter também é empacotado como uma imagem do Docker.
  • Pelo Cloud Run O PGAdapter pode ser implantado como um proxy de arquivo secundário no Cloud Run.
  • Proxy secundário. Um uso comum como proxy sidecar é em um ambiente do Kubernetes aglomerado.
  • Em processamento. O código do aplicativo Java pode usar o arquivo JAR fornecido para crie e inicie uma instância do PGAdapter.

Para mais detalhes sobre esses métodos, consulte Inicie o PGAdapter.

Autorização com PGAdapter

O PGAdapter determina a conta de serviço ou outra ferramenta do Identity and Access Management (IAM) principal a ser usado para a conexão examinando o as credenciais que você especifica ao iniciá-lo. O IAM as permissões concedidas a esse principal determinam as permissões que o que o aplicativo tem no banco de dados.

Quando um controle de acesso refinado está em uso, é possível especificar uma de banco de dados ao iniciar o PGAdapter. Se você especificar um papel de banco de dados, o PGAdapter usa um controle de acesso refinado ao enviar solicitações de consultas e instruções DML. Isso requer a permissão do IAM spanner.databases.useRoleBasedAccess e, para papéis de banco de dados diferentes public, a permissão spanner.databaseRoles.use. Os privilégios concedidos a o papel de banco de dados determina as operações que o aplicativo de conexão pode executar. Se você não especificar um papel de banco de dados, os papéis do banco de dados as permissões concedidas ao IAM principal são usados. Para executar instruções DDL, o principal precisa ter a spanner.databases.updateDdl.

Para mais informações, consulte Sobre controle de acesso detalhado e Controle de acesso com o IAM.

A seguir