PGAdapter 概览

本页简要介绍了 PGAdapter。如需了解如何启动 PGAdapter, 请参阅启动 PGAdapter

PGAdapter 是一个边车代理,支持 PostgreSQL 页面。它运行在 并在本地主机上公开一个端点, PostgreSQL 线路协议。它可以将 PostgreSQL 线路协议转换为 Spanner 线路协议 gRPC。使用此代理 本地运行时,PostgreSQL 客户端(例如 psql)可以连接到 PostgreSQL-dialect Spanner 数据库。

下图显示了 psql 如何通过 PGAdapter 连接到 Spanner。

psql 通过 PGAdapter 连接到 Spanner

PGAdapter 支持简单和扩展查询模式,以及 支持 Spanner 的 PostgreSQL 页面所支持的任何数据类型。

PGAdapter 执行环境

您可以使用以下方法之一运行 PGAdapter:

  • 独立。PGAdapter 以 JAR 文件的形式提供,并运行 在 JVM 中保持独立。
  • Docker。PGAdapter 还会打包为 Docker 映像。
  • Cloud Run。可以将 PGAdapter 部署为边车代理 。
  • Sidecar 代理。作为边车代理的典型用途是 集群。
  • 进程中。Java 应用代码可以使用提供的 JAR 文件 创建并启动 PGAdapter 实例。

如需详细了解这些方法,请参阅 启动 PGAdapter

使用 PGAdapter 授权

PGAdapter 决定服务账号或其他 Identity and Access Management (IAM) 主账号,方法是检查 您在启动虚拟机时指定的凭据。IAM 授予该主账号的权限决定了 连接应用对数据库的影响。

使用精细访问权限控制时,您可以选择指定 数据库角色。如果您指定了数据库角色 那么 PGAdapter 在发送查询请求时就会使用精细的访问权限控制机制 和 DML 语句。这需要 IAM 权限 spanner.databases.useRoleBasedAccess,并且对于除以下数据库角色之外的数据库角色 publicspanner.databaseRoles.use 权限。授予的权限 数据库角色决定了连接的应用可以执行的操作 效果。如果您未指定数据库角色,则 向 IAM 授予的权限 主账号。如需执行 DDL 语句,主账号必须具有 spanner.databases.updateDdl 权限。

如需了解详情,请参阅精细访问权限控制简介使用 IAM 进行访问权限控制

后续步骤