PGAdapter – Übersicht

Auf dieser Seite erhalten Sie einen Überblick über PGAdapter. Informationen zum Starten von PGAdapter finden Sie unter PGAdapter starten.

PGAdapter ist ein Sidecar-Proxy, der die PostgreSQL-Schnittstelle für Spanner unterstützt. Sie wird auf demselben Computer wie die Anwendung ausgeführt und stellt einen Endpunkt auf localhost bereit, der das PostgreSQL-Verbindungsprotokoll unterstützt. Es übersetzt das PostgreSQL-Wire-Protokoll in das Spanner-Wire-Protokoll gRPC. Wenn dieser Proxy lokal ausgeführt wird, kann ein PostgreSQL-Client wie psql eine Verbindung zu einer Spanner-Datenbank mit PostgreSQL-Dialekt herstellen.

Das folgende Diagramm zeigt, wie psql über PGAdapter eine Verbindung zu Spanner herstellt.

psql stellt über PGAdapter eine Verbindung zu Spanner her

PGAdapter unterstützt einfache und erweiterte Abfragemodi und alle Datentypen, die die PostgreSQL-Schnittstelle für Spanner unterstützt.

PGAdapter-Ausführungsumgebungen

Sie können PGAdapter mit einer der folgenden Methoden ausführen:

  • Eigenständig. PGAdapter wird als JAR-Datei bereitgestellt und eigenständig in der JVM ausgeführt.
  • Docker PGAdapter ist auch in ein Docker-Image gepackt.
  • Cloud Run. PGAdapter kann als Sidecar-Proxy in Cloud Run bereitgestellt werden.
  • Sidecar-Proxy. Ein Sidecar-Proxy wird typischerweise in einem Kubernetes-Cluster verwendet.
  • In Bearbeitung. Ihr Java-Anwendungscode kann mit der mitgelieferten JAR-Datei eine PGAdapter-Instanz erstellen und starten.

Weitere Informationen zu diesen Methoden finden Sie unter PGAdapter starten.

Autorisierung mit PGAdapter

PGAdapter bestimmt das Dienstkonto oder ein anderes IAM-Hauptkonto (Identity and Access Management), das für die Verbindung verwendet werden soll, indem die Anmeldedaten geprüft werden, die Sie beim Start angeben. Die IAM-Berechtigungen, die diesem Hauptkonto gewährt werden, bestimmen die Berechtigungen der Anwendung, die die Verbindung für die Datenbank hat.

Wenn eine detaillierte Zugriffssteuerung verwendet wird, können Sie beim Starten von PGAdapter optional eine Datenbankrolle angeben. Wenn Sie eine Datenbankrolle angeben, verwendet PGAdapter eine detaillierte Zugriffssteuerung, wenn es Anfragen für Abfragen und DML-Anweisungen sendet. Hierfür ist die IAM-Berechtigung spanner.databases.useRoleBasedAccess und für andere Datenbankrollen als public die Berechtigung spanner.databaseRoles.use erforderlich. Die der Datenbankrolle gewährten Berechtigungen bestimmen, welche Vorgänge die Anwendung, die die Verbindung herstellt, ausführen kann. Wenn Sie keine Datenbankrolle angeben, werden die Berechtigungen auf Datenbankebene verwendet, die dem IAM-Hauptkonto gewährt werden. Zum Ausführen von DDL-Anweisungen muss das Hauptkonto die Berechtigung spanner.databases.updateDdl haben.

Weitere Informationen finden Sie unter Detaillierte Zugriffssteuerung und Zugriffssteuerung mit IAM.

Nächste Schritte