通过psql连接实例
通过PostgreSQL客户端连接实例的方式有SSL连接。SSL连接通过了加密功能,具有更高的安全性。
创建RDS for PostgreSQL实例时默认开启SSL,实例创建完成后,不支持关闭。
前提条件
- 登录弹性云服务器。
- 通过弹性云服务器连接云数据库RDS实例,需要具备以下条件。
- 该弹性云服务器与目标实例必须处于同一VPC内。
- 该弹性云服务器必须处于目标实例所属安全组允许访问的范围内。
- 如果目标实例所属安全组为默认安全组, 则无需设置安全组规则。
- 如果目标实例所属安全组非默认安全组,请查看安全组规则是否允许该弹性云服务器访问。具体操作请参考设置安全组规则。
如果安全组规则允许弹性云服务器访问,即可连接实例。
如果安全组规则不允许弹性云服务器访问,则需添加安全组规则。该弹性云服务器必须处于目标实例所属安全组允许访问的范围内。
- 通过弹性云服务器连接云数据库RDS实例,需要具备以下条件。
- 使用客户端连接实例。
SSL连接
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 选择 。进入关系型数据库信息页面。
- 在“实例管理”页面,单击实例名称进入“基本信息”页面。
- 单击“SSL”处的,下载根证书或捆绑包。
- 将根证书上传至需连接RDS for PostgreSQL实例的弹性云服务器,或保存到可访问云数据库RDS实例的设备。
将根证书导入弹性云服务器Linux操作系统,请参见将根证书导入Windows/Linux操作系统。
- 连接云数据库RDS实例。以Linux系统为例,执行如下命令。
psql --no-readline -h <host> -p <port> "dbname=<database> user=<user> sslmode=verify-ca sslrootcert=<ca-file-directory>"
表1 参数说明 参数
说明
<host>
主机IP,在“实例管理”页面单击实例名称,进入“基本信息”页面。“连接信息”模块的“内网地址”(通过弹性云服务器访问)。
<port>
端口,默认5432,当前端口,即在“实例管理”页面单击实例名称,进入“基本信息”页面,“连接信息”模块的“数据库端口”。
<database>
需要连接的数据库名,默认管理数据库是postgres。
<user>
用户名,即云数据库RDS账号,默认管理员账号为root。
<ca-file-directory>
SSL连接CA证书路径,该文件需放在执行该命令的路径下。
sslmode
SSL连接模式,设置为“verify-ca”,通过检查证书链(Certificate Chain,以下简称CA)来验证服务是否可信任。
出现如下提示时,输入数据库账号对应的密码:
Password:
使用root用户SSL连接postgres数据库实例,示例如下:
psql --no-readline -h 192.168.0.44 -p 5432 "dbname=postgres user=root sslmode=verify-ca sslrootcert=/root/ca.pem"
Password:
- 登录数据库后,出现如下信息,表示通过SSL连接成功。
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)