Panoramica di PGAdapter

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

PGAdapter è un proxy sidecar che supporta Interfaccia PostgreSQL per Spanner. Viene eseguito sullo stesso macchina come applicazione ed espone un endpoint su localhost che supporta il protocollo PostgreSQL. Traduce il database PostgreSQL nel protocollo di connessione di Spanner, gRPC. Con questo proxy in esecuzione in locale, un client PostgreSQL come psql può connettersi Database Spanner con dialetto PostgreSQL.

Il seguente diagramma mostra come psql si connette a Spanner tramite PGAdapter.

psql si connette a Spanner tramite PGAdapter

PGAdapter supporta le modalità di query semplice ed estesa. supporta qualsiasi tipo di dati supportato dall'interfaccia PostgreSQL per Spanner.

Ambienti di esecuzione di PGAdapter

Puoi eseguire PGAdapter utilizzando uno dei seguenti metodi:

  • Autonomi. PGAdapter viene fornito come file JAR ed esegue in modo autonomo nella JVM.
  • Docker. PGAdapter è pacchettizzato anche come immagine Docker.
  • Cloud Run. PGAdapter può essere implementato come proxy sidecar su Cloud Run.
  • Proxy sidecar. Un uso tipico come proxy sidecar è in un ambiente Kubernetes in un cluster Kubernetes.
  • In corso. Il codice dell'applicazione Java può utilizzare il file JAR fornito e avviare un'istanza PGAdapter.

Per maggiori dettagli su questi metodi, consulta Avvia PGAdapter.

Autorizzazione con PGAdapter

PGAdapter determina l'account di servizio o un altro strumento Identity and Access Management (IAM) per la connessione esaminando le credenziali specificate all'avvio. IAM le autorizzazioni concesse a quell'entità determinano le autorizzazioni un'applicazione di connessione presente sul database.

Quando viene utilizzato un controllo dell'accesso granulare, è possibile specificare ruolo di database all'avvio di PGAdapter. Se specifichi un ruolo del database, PGAdapter usa un controllo dell'accesso granulare quando invia richieste per le query. e DML. Questa operazione richiede l'autorizzazione IAM spanner.databases.useRoleBasedAccess e, per i ruoli del database diversi da public, l'autorizzazione spanner.databaseRoles.use. I privilegi concessi il ruolo di database determina le operazioni che l'applicazione di connessione può eseguire il deployment. Se non specifichi un ruolo del database, la classe a livello di database le autorizzazioni concesse ai ruoli IAM vengono utilizzate entità. Per eseguire istruzioni DDL, l'entità deve avere Autorizzazione spanner.databases.updateDdl.

Per ulteriori informazioni, vedi Informazioni sul controllo dell'accesso granulare e Controllo dell'accesso con IAM.

Passaggi successivi