使用兼容 PostgreSQL 的客户端访问 Aurora DSQL
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 进行连接
-
登录 Aurora DSQL 控制台
。 -
选择要在 CloudShell 中打开的集群。如果您尚未创建集群,请按照步骤 1:创建 Aurora DSQL 单区域集群或创建多区域集群中的步骤操作。
-
选择使用查询编辑器进行连接,然后选择使用 CloudShell 进行连接。
-
选择是要以管理员身份还是要使用自定义数据库角色进行连接。
-
选择在 CloudShell 中启动,然后在以下 CloudShell 对话框中选择运行。
使用本地 CLI 通过 PostgreSQL 交互式终端(psql)访问 Aurora DSQL
使用 psql(一款基于终端的 PostgreSQL 前端实用程序)可通过交互方式输入查询,将查询发送到 PostgreSQL,并查看查询结果。
注意
要缩短查询响应时间,请使用 PostgreSQL 版本 17 客户端。如果您在不同的环境中使用 CLI,请务必手动设置 Python 版本 3.8+ 和 psql 版本 14+。
从 PostgreSQL Downloadspsql 的更多信息,请参阅 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 \ --regionus-east-1\ --expires-in 3600 \ --hostnameyour_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 \ --hostyour_cluster_endpoint
使用 DBeaver 访问 Aurora DSQL
DBeaver 是一个基于 GUI 的开源数据库工具。可以使用它来连接和管理数据库。要下载 DBeaver,请参阅 DBeaver 社区网站上的下载页面
按以下过程操作,使用 DBeaver 连接到您的集群。
在 DBeaver 中设置新的 Aurora DSQL 连接
-
选择新建数据库连接。
-
在新建数据库连接窗口中,选择 PostgreSQL。
-
在连接设置/主要选项卡中,选择连接方式:主机,然后输入以下信息:
-
主机:使用您的集群端点。
数据库:输入
postgres身份验证:选择
Database Native用户名:输入
admin密码:生成身份验证令牌。复制生成的令牌并将其用作密码。
-
-
忽略所有警告,并将身份验证令牌粘贴到 DBeaver 密码字段中。
注意
您必须在客户端连接中设置 SSL 模式。Aurora DSQL 支持
PGSSLMODE=require and PGSSLMODE=verify-full。Aurora DSQL 在服务器端强制执行 SSL 通信,并拒绝非 SSL 连接。对于verify-full选项,您需要本地安装 SSL 证书。有关更多信息,请参阅 SSL/TLS 证书。 -
您应该已连接到集群,并可以开始运行 SQL 语句。
重要
DBeaver 为 PostgreSQL 数据库提供的管理功能(如会话管理器和锁定管理器)由于其独特的架构而不适用于数据库。虽然这些屏幕可供访问,但它们不提供有关数据库运行状况或状态的可靠信息。
使用 JetBrains DataGrip 访问 Aurora DSQL
JetBrains DataGrip 是一款跨平台 IDE,用于处理 SQL 和数据库,包括 PostgreSQL。DataGrip 包含一个强大的图形用户界面和一个智能 SQL 编辑器。要下载 DataGrip,请转至 JetBrains 网站上的下载页面
在 JetBrains DataGrip 中设置新的 Aurora DSQL 连接
-
选择新建数据来源,然后选择 PostgreSQL。
-
在数据来源/常规选项卡中,输入以下信息:
-
主机:使用您的集群端点。
端口:Aurora DSQL 使用 PostgreSQL 默认值:
5432数据库:Aurora DSQL 使用 PostgreSQL 默认值
postgres身份验证:选择
User & Password。用户名:输入
admin。密码:生成令牌并将其粘贴到此字段中。
URL:请勿修改此字段。它将根据其它字段自动填充。
-
-
密码:通过生成身份验证令牌来提供密码。复制令牌生成器的结果输出,并将其粘贴到密码字段中。
注意
您必须在客户端连接中设置 SSL 模式。Aurora DSQL 支持
PGSSLMODE=require and PGSSLMODE=verify-full。Aurora DSQL 在服务器端强制执行 SSL 通信,并拒绝非 SSL 连接。对于verify-full选项,您需要本地安装 SSL 证书。有关更多信息,请参阅 SSL/TLS 证书。 -
您应该已连接到集群,并可以开始运行 SQL 语句:
重要
DataGrip 为 PostgreSQL 数据库提供的某些视图(例如会话)由于其独特的架构而不适用于数据库。虽然这些屏幕可供访问,但它们不提供有关连接到数据库的实际会话的可靠信息。
故障排除
SQL 客户端的身份验证凭证过期
已建立的会话会在最多 1 小时内保持身份验证状态,或者直到出现显式断开连接或客户端超时。如果需要建立新连接,则必须在连接的密码字段中生成并提供新的身份验证令牌。尝试打开新会话(例如,列出新表或新的 SQL 控制台)会强制尝试新的身份验证。如果在连接设置中配置的身份验证令牌不再有效,则该新会话将失败,并且所有先前打开的会话将变为无效。在通过 expires-in 选项选择 IAM 身份验证令牌的持续时间时,请记住一点:该持续时间默认设置为 15 分钟,最大值可设置为 7 天。
此外,请参阅 Aurora DSQL 文档的故障排除部分。