Ringkasan PGAdapter

Halaman ini menyediakan ringkasan tentang PGAdapter. Untuk mempelajari cara memulai PGAdapter, lihat Memulai PGAdapter.

PGAdapter adalah proxy file bantuan yang mendukung antarmuka PostgreSQL untuk Spanner. Protokol ini berjalan di mesin yang sama dengan aplikasi dan menampilkan endpoint di localhost yang mendukung protokol kabel PostgreSQL. Alat ini menerjemahkan protokol kabel PostgreSQL ke dalam protokol kabel Spanner, gRPC. Dengan proxy ini yang berjalan secara lokal, klien PostgreSQL seperti psql dapat terhubung ke database Spanner dialek PostgreSQL.

Diagram berikut menunjukkan cara psql terhubung ke Spanner melalui PGAdapter.

psql terhubung ke Spanner melalui PGAdapter

PGAdapter mendukung mode kueri sederhana dan diperluas, serta mendukung jenis data apa pun yang didukung antarmuka PostgreSQL untuk Spanner.

Lingkungan eksekusi PGAdapter

Anda dapat menjalankan PGAdapter menggunakan salah satu metode berikut:

  • Mandiri. PGAdapter disediakan sebagai file JAR dan berjalan secara mandiri di JVM.
  • Docker. PGAdapter juga dikemas sebagai image Docker.
  • Cloud Run. PGAdapter dapat di-deploy sebagai proxy file bantuan di Cloud Run.
  • Proxy file bantuan. Penggunaan standar sebagai proxy file bantuan berada di cluster Kubernetes.
  • Dalam proses. Kode aplikasi Java Anda dapat menggunakan file JAR yang disediakan untuk membuat dan memulai instance PGAdapter.

Untuk mengetahui detail tentang metode ini, lihat Memulai PGAdapter.

Otorisasi dengan PGAdapter

PGAdapter menentukan akun layanan atau akun utama Identity and Access Management (IAM) lainnya yang akan digunakan untuk koneksi dengan memeriksa kredensial yang Anda tentukan saat memulainya. Izin IAM yang diberikan ke akun utama tersebut menentukan izin yang dimiliki aplikasi yang terhubung pada database.

Ketika kontrol akses terperinci sedang digunakan, secara opsional Anda dapat menentukan peran database saat memulai PGAdapter. Jika Anda menentukan peran database, PGAdapter akan menggunakan kontrol akses terperinci saat mengirimkan permintaan kueri dan pernyataan DML. Tindakan ini memerlukan izin IAM spanner.databases.useRoleBasedAccess dan, untuk peran database selain public, izin spanner.databaseRoles.use. Hak istimewa yang diberikan ke peran database menentukan operasi yang dapat dilakukan oleh aplikasi yang terhubung. Jika Anda tidak menentukan peran database, izin level database yang diberikan ke akun utama IAM akan digunakan. Untuk menjalankan pernyataan DDL, akun utama harus memiliki izin spanner.databases.updateDdl.

Untuk mengetahui informasi selengkapnya, lihat Tentang kontrol akses terperinci dan Kontrol akses dengan IAM.

Langkah selanjutnya