Panoramica di PGAdapter

Questa pagina fornisce una panoramica di PGAdapter. Per scoprire come avviare PGAdapter, consulta la pagina Avviare PGAdapter.

PGAdapter è un proxy sidecar che supporta l' interfaccia PostgreSQL per Spanner. Viene eseguito sulla stessa macchina dell'applicazione ed espone un endpoint su localhost che supporta il protocollo di collegamento PostgreSQL. Converte il protocollo PostgreSQL nel protocollo di collegamento Spanner, gRPC. Con questo proxy eseguito in locale, un client PostgreSQL come psql può connettersi a un database Spanner dialetto PostgreSQL.

Il seguente diagramma mostra in che modo psql si connette a Spanner tramite PGAdapter.

psql si connette a Spanner tramite PGAdapter

PGAdapter supporta modalità di query semplici ed estese e qualsiasi tipo di dati supportato dall'interfaccia PostgreSQL per Spanner.

Ambienti di esecuzione PGAdapter

Puoi eseguire PGAdapter utilizzando uno dei seguenti metodi:

  • Autonomi. PGAdapter viene fornito come file JAR e viene eseguito autonomo nella JVM.
  • Docker PGAdapter è anche pacchettizzato come immagine Docker.
  • Cloud Run. Puoi eseguire il deployment di PGAdapter come proxy sidecar su Cloud Run.
  • Proxy Sidecar. Un uso tipico come proxy sidecar è in un cluster Kubernetes.
  • In corso. Il codice dell'applicazione Java può utilizzare il file JAR fornito per creare e avviare un'istanza PGAdapter.

Per maggiori dettagli su questi metodi, consulta Avviare PGAdapter.

Autorizzazione con PGAdapter

PGAdapter determina l'account di servizio o un'altra entità IAM (Identity and Access Management) da utilizzare per la connessione esaminando le credenziali specificate all'avvio. Le autorizzazioni IAM concesse all'entità determinano le autorizzazioni dell'applicazione di connessione sul database.

Quando è in uso un controllo dell'accesso granulare, puoi facoltativamente specificare un ruolo del database all'avvio di PGAdapter. Se specifichi un ruolo nel database, PGAdapter utilizza un controllo dell'accesso granulare quando invia richieste per query e istruzioni DML. Ciò richiede l'autorizzazione IAM spanner.databases.useRoleBasedAccess e, per i ruoli del database diversi da public, l'autorizzazione spanner.databaseRoles.use. I privilegi concessi al ruolo del database determinano le operazioni che l'applicazione che si connette può eseguire. Se non specifichi un ruolo di database, vengono utilizzate le autorizzazioni a livello di database concesse all'entità IAM. Per eseguire istruzioni DDL, l'entità deve avere l'autorizzazione spanner.databases.updateDdl.

Per maggiori informazioni, consulta Informazioni sul controllo dell'accesso granulare e Controllo dell'accesso con IAM.

Passaggi successivi