使用兼容 PostgreSQL 的客户端访问 Aurora DSQL - Amazon Aurora DSQL

使用兼容 PostgreSQL 的客户端访问 Aurora DSQL

Aurora DSQL 使用 PostgreSQL 有线协议。您可以通过各种工具和客户端(例如,AWS CloudShell、psql、DBeaver 和 DataGrip)连接到 PostgreSQL。下表汇总了 Aurora DSQL 与常见 PostgreSQL 连接参数的对应关系:

PostgreSQL Aurora DSQL 备注
角色(也称为用户或组) 数据库角色 Aurora DSQL 为您创建一个名为 admin 的角色。当您创建自定义数据库角色时,您必须使用 admin 角色将其与 IAM 角色关联,以便在连接到集群时进行身份验证。有关更多信息,请参阅配置自定义数据库角色
主机(也称为主机名或主机规格) 集群端点 Aurora DSQL 单区域集群提供单个托管式端点,当区域内出现不可用性问题时会自动重定向流量。
端口 不适用:使用默认值 5432 这是 PostgreSQL 默认值。
数据库(dbname) 使用 postgres Aurora DSQL 会在您创建集群时为您创建此数据库。
SSL 模式 始终在服务器端启用 SSL 在 Aurora DSQL 中,Aurora DSQL 支持 require SSL 模式。Aurora DSQL 会拒绝没有 SSL 的连接。
密码 身份验证令牌 Aurora DSQL 需要临时身份验证令牌,而不是长期密码。要了解更多信息,请参阅在 Amazon Aurora DSQL 中生成身份验证令牌

连接时,Aurora DSQL 要求使用签名的 IAM 身份验证令牌替代传统密码。这些临时令牌通过 AWS 签名版本 4 生成,并且仅在建立连接期间使用。建立连接后,会话将保持活动状态,直至会话结束或客户端断开连接。

如果您尝试使用过期的令牌打开新会话,连接请求将失败,并且必须生成新令牌。有关更多信息,请参阅 在 Amazon Aurora DSQL 中生成身份验证令牌

使用 SQL 客户端访问 Aurora DSQL

Aurora DSQL 支持通过多种兼容 PostgreSQL 的客户端来连接到您的集群。以下各部分介绍如何使用 AWS CloudShell 或本地命令行通过 PostgreSQL 进行连接,以及如何使用基于 GUI 的工具(例如 DBeaver 和 JetBrains DataGrip)进行连接。每个客户端均需要一个有效的身份验证令牌,如上一部分所述。

使用 AWS CloudShell 通过 PostgreSQL 交互式终端(psql)访问 Aurora DSQL

按照以下过程操作,使用 AWS CloudShell 通过 PostgreSQL 交互式终端访问 Aurora DSQL。有关更多信息,请参阅什么是 AWS CloudShell

使用 AWS CloudShell 进行连接
  1. 登录 Aurora DSQL 控制台

  2. 选择要在 CloudShell 中打开的集群。如果您尚未创建集群,请按照步骤 1:创建 Aurora DSQL 单区域集群创建多区域集群中的步骤操作。

  3. 选择使用查询编辑器进行连接,然后选择使用 CloudShell 进行连接

  4. 选择是要以管理员身份还是要使用自定义数据库角色进行连接。

  5. 选择在 CloudShell 中启动,然后在以下 CloudShell 对话框中选择运行

使用本地 CLI 通过 PostgreSQL 交互式终端(psql)访问 Aurora DSQL

使用 psql(一款基于终端的 PostgreSQL 前端实用程序)可通过交互方式输入查询,将查询发送到 PostgreSQL,并查看查询结果。

注意

要缩短查询响应时间,请使用 PostgreSQL 版本 17 客户端。如果您在不同的环境中使用 CLI,请务必手动设置 Python 版本 3.8+ 和 psql 版本 14+。

PostgreSQL Downloads 页面下载操作系统的安装程序。有关 psql 的更多信息,请参阅 PostgreSQL 网站上的 PostgreSQL 客户端应用程序

如果您已经安装了 AWS CLI,请使用以下示例连接到集群。

# Aurora DSQL requires a valid IAM token as the password when connecting. # Aurora DSQL provides tools for this and here we're using Python. export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token \ --region us-east-1 \ --expires-in 3600 \ --hostname your_cluster_endpoint) # Aurora DSQL requires SSL and will reject your connection without it. export PGSSLMODE=require # Connect with psql, which automatically uses the values set in PGPASSWORD and PGSSLMODE. # Quiet mode suppresses unnecessary warnings and chatty responses but still outputs errors. psql --quiet \ --username admin \ --dbname postgres \ --host your_cluster_endpoint

使用 DBeaver 访问 Aurora DSQL

DBeaver 是一个基于 GUI 的开源数据库工具。可以使用它来连接和管理数据库。要下载 DBeaver,请参阅 DBeaver 社区网站上的下载页面

按以下过程操作,使用 DBeaver 连接到您的集群。

在 DBeaver 中设置新的 Aurora DSQL 连接
  1. 选择新建数据库连接

  2. 新建数据库连接窗口中,选择 PostgreSQL。

  3. 连接设置/主要选项卡中,选择连接方式:主机,然后输入以下信息:

    1. 主机:使用您的集群端点。

      数据库:输入 postgres

      身份验证:选择 Database Native

      用户名:输入 admin

      密码:生成身份验证令牌。复制生成的令牌并将其用作密码。

  4. 忽略所有警告,并将身份验证令牌粘贴到 DBeaver 密码字段中。

    注意

    您必须在客户端连接中设置 SSL 模式。Aurora DSQL 支持 PGSSLMODE=require and PGSSLMODE=verify-full。Aurora DSQL 在服务器端强制执行 SSL 通信,并拒绝非 SSL 连接。对于 verify-full 选项,您需要本地安装 SSL 证书。有关更多信息,请参阅 SSL/TLS 证书

  5. 您应该已连接到集群,并可以开始运行 SQL 语句。

重要

DBeaver 为 PostgreSQL 数据库提供的管理功能(如会话管理器锁定管理器)由于其独特的架构而不适用于数据库。虽然这些屏幕可供访问,但它们不提供有关数据库运行状况或状态的可靠信息。

使用 JetBrains DataGrip 访问 Aurora DSQL

JetBrains DataGrip 是一款跨平台 IDE,用于处理 SQL 和数据库,包括 PostgreSQL。DataGrip 包含一个强大的图形用户界面和一个智能 SQL 编辑器。要下载 DataGrip,请转至 JetBrains 网站上的下载页面

在 JetBrains DataGrip 中设置新的 Aurora DSQL 连接
  1. 选择新建数据来源,然后选择 PostgreSQL。

  2. 数据来源/常规选项卡中,输入以下信息:

    1. 主机:使用您的集群端点。

      端口:Aurora DSQL 使用 PostgreSQL 默认值:5432

      数据库:Aurora DSQL 使用 PostgreSQL 默认值 postgres

      身份验证:选择 User & Password

      用户名:输入 admin

      密码生成令牌并将其粘贴到此字段中。

      URL:请勿修改此字段。它将根据其它字段自动填充。

  3. 密码:通过生成身份验证令牌来提供密码。复制令牌生成器的结果输出,并将其粘贴到密码字段中。

    注意

    您必须在客户端连接中设置 SSL 模式。Aurora DSQL 支持 PGSSLMODE=require and PGSSLMODE=verify-full。Aurora DSQL 在服务器端强制执行 SSL 通信,并拒绝非 SSL 连接。对于 verify-full 选项,您需要本地安装 SSL 证书。有关更多信息,请参阅 SSL/TLS 证书

  4. 您应该已连接到集群,并可以开始运行 SQL 语句:

重要

DataGrip 为 PostgreSQL 数据库提供的某些视图(例如会话)由于其独特的架构而不适用于数据库。虽然这些屏幕可供访问,但它们不提供有关连接到数据库的实际会话的可靠信息。

故障排除

SQL 客户端的身份验证凭证过期

已建立的会话会在最多 1 小时内保持身份验证状态,或者直到出现显式断开连接或客户端超时。如果需要建立新连接,则必须在连接的密码字段中生成并提供新的身份验证令牌。尝试打开新会话(例如,列出新表或新的 SQL 控制台)会强制尝试新的身份验证。如果在连接设置中配置的身份验证令牌不再有效,则该新会话将失败,并且所有先前打开的会话将变为无效。在通过 expires-in 选项选择 IAM 身份验证令牌的持续时间时,请记住一点:该持续时间默认设置为 15 分钟,最大值可设置为 7 天。

此外,请参阅 Aurora DSQL 文档的故障排除部分。