使用 Kerberos 身份验证连接到 PostgreSQL - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Kerberos 身份验证连接到 PostgreSQL

您可以使用 pgAdmin 界面或命令行界面(如 psql)通过 Kerberos 身份验证连接到 PostgreSQL。有关连接的更多信息,请参阅 连接到运行 PostgreSQL 数据库引擎的数据库实例有关获取连接所需的端点、端口号和其他详细信息的信息,请参阅步骤 3:连接到 PostgreSQL 数据库实例

要使用 pgAdmin 通过 Kerberos 身份验证连接到 PostgreSQL,请执行以下步骤:

  1. 在您的客户端计算机上启动 pgAdmin 应用程序。

  2. Dashboard (控制面板) 选项卡上,选择 Add New Server (添加新服务器)。

  3. Create - Server (创建 - 服务器) 对话框中,在 General (常规) 选项卡上键入名称以在 pgAdmin 中标识该服务器。

  4. Connection (连接) 选项卡上,键入您的 RDS for PostgreSQL 数据库的以下信息。

    • 对于 Host(主机),输入 RDS for PostgreSQL 数据库实例的端点。端点看起来类似于以下所示:

      RDS-DB-instance.111122223333.aws-region.rds.amazonaws.com

      要从 Windows 客户端连接到本地 Microsoft Active Directory,请使用 Amazon Managed Active Directory 的域名,而不是主机端点中的 rds.amazonaws.com。例如,假设 Amazon Managed Active Directory 的域名为 corp.example.com。然后,对于 Host(主机),按如下方式指定端点:

      RDS-DB-instance.111122223333.aws-region.corp.example.com
    • 对于 Port (端口),输入分配的端口。

    • 对于 Maintenance database (维护数据库),输入客户端将连接到的初始数据库的名称。

    • 对于用户名,键入您在 步骤 7:为您的 Kerberos 主体创建 PostgreSQL 用户 中为 Kerberos 身份验证输入的用户名。

  5. 选择 Save(保存)。

要使用 psql 通过 Kerberos 身份验证连接到 PostgreSQL,请执行以下步骤:

  1. 在命令提示符处,运行以下命令。

    kinit username

    username 替换为用户名。在提示符下,输入在 Microsoft Active Directory 中为用户存储的密码。

  2. 如果 PostgreSQL 数据库实例使用可公开访问的 VPC,请将数据库实例端点的 IP 地址放在 EC2 客户端上的 /etc/hosts 文件中。例如,以下命令获取 IP 地址,然后将其放在 /etc/hosts 文件中。

    % dig +short PostgreSQL-endpoint.Amazon-Region.rds.amazonaws.com ;; Truncated, retrying in TCP mode. ec2-34-210-197-118.Amazon-Region.compute.amazonaws.com. 34.210.197.118 % echo " 34.210.197.118 PostgreSQL-endpoint.Amazon-Region.rds.amazonaws.com" >> /etc/hosts

    如果您从 Windows 客户端使用本地 Microsoft Active Directory,则需要使用特殊终端节点进行连接。在主机终端节点中使用 rds.amazonaws.com Managed Active Directory 的域名,而不是 Amazon 域 Amazon。

    例如,假设 Amazon Managed Active Directory 的域名为 corp.example.com。为终端节点使用格式 PostgreSQL-endpoint.Amazon-Region.corp.example.com,将其放入 /etc/hosts 文件。

    % echo " 34.210.197.118 PostgreSQL-endpoint.Amazon-Region.corp.example.com" >> /etc/hosts
  3. 使用以下 psql 命令登录到与 Active Directory 集成的 PostgreSQL 数据库实例

    psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.Amazon-Region.rds.amazonaws.com postgres

    要从 Windows 客户端使用本地 Active Directory 登录 PostgreSQL 数据库集群,请使用以下 psql 命令以及上一步中的域名 (corp.example.com):

    psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.Amazon-Region.corp.example.com postgres