创建 PostgreSQL 数据源
NineData 支持将不同类型、不同环境的数据源添加到控制台中进行统一管理,您可以对已经添加后的数据源使用数据库 DevOps、备份与恢复、数据复制、数据库对比等功能。本文介绍如何将 PostgreSQL 数据源添加到 NineData。
前提条件
已将 NineData 的服务器 IP 地址添加到数据源白名单。服务器 IP 地址的获取方式请参见下图。

具备空闲的数据源额度,否则无法录入数据源。您可以在 NineData 控制台页面右上方快速查看剩余配额。

操作步骤
登录 NineData 控制台。
在左侧导航栏,单击数据源管理>数据源。
- 单击**数据源**页签,并单击页面上的**创建数据源**,在弹出的数据源类型弹窗中,选择自建数据库 > (需要添加的数据源类型),在**创建数据源**页面根据下表配置参数。提示
如果您操作失误,可以单击创建数据源页面上方的
图标重新选择。
配置数据源的各项参数:
参数 说明 数据源名称 输入数据源的名称,为了方便后续查找和管理,请尽量使用有意义的名称。 连接方式选择公网地址的配置项 连接地址:数据源的公网连接地址和端口。 连接方式选择网关的配置项 - 网关:选择数据源所在主机中安装的 NineData 网关。
- 连接地址:可以写成 localhost(数据源在本机)或者数据源所在主机的内网 IP。
连接方式 选择数据源的接入方式。支持通过公网地址、网关、SSH Tunnel 三种方式接入。 - 公网地址:通过公网地址接入数据源。
- 网关:NineData 提供的安全快捷的内网访问方式,需先将数据源所在主机接入,接入方式请参见添加网关。
- SSH Tunnel:通过 SSH 隧道接入数据源。
连接方式选择 SSH Tunnel 的配置项 - SSH 主机:输入目标数据源所在服务器的公网 IP 或者域名,以及对应的端口号(SSH 服务的默认端口号为 22)。
- SSH 认证方式:选择 SSH 的认证方式。
- 密码认证:通过 SSH 用户名(即服务器的登录名)和密码(即服务器的登录密码)进行连接。
- SSH 用户名:输入目标数据源所在服务器的登录用户名。
- 密码:输入目标数据源所在服务器的登录密码。
- 密钥认证(推荐):通过 SSH 用户名和密钥文件进行连接。
- SSH 用户名:输入目标数据源所在服务器的登录用户名。
- 密钥文件:单击上传文件上传私钥文件,即无后缀名的密钥文件。如果您还未创建,请参见生成 SSH Tunnel 密钥文件。
- 口令:输入生成密钥文件时设置的密码。如果您在密钥生成过程中未设置密码,此处请留空。
说明:SSH 配置完成后,您需要单击右侧的连接测试,可能出现如下两种结果: - 密码认证:通过 SSH 用户名(即服务器的登录名)和密码(即服务器的登录密码)进行连接。
- 提示连接成功:表示 SSH Tunnel 已打通。
- 提示错误信息:表示连接失败,您需要根据提错误示排查故障原因并重试。
- 连接地址:可以写成 localhost(数据源在本机)或者数据源所在主机的内网 IP。
数据库账号 输入 PostgreSQL 的登录用户名。 数据库密码 输入 PostgreSQL 的登录密码。 客户端字符集 定义应用程序生成和解析文本数据时使用的字符编码(如 GBK,UTF8),NineData 将基于此编码在应用与数据库之间进行双向转码,避免读写时出现乱码。客户端时区 定义应用所在的时区信息,NineData 将会在读取未包含时区信息的日期、时间字段时,将存储的数据转换为所定义的时区并返回。例如,您的应用所在地区为上海,则填写 +08:00。接入地域 选择离您的 PostgreSQL 主机所在地最近的地域,可有效降低网络延迟。 环境 根据该数据源的实际业务用途进行选择,作为数据源的环境标识。默认提供生产和开发环境,同时支持您创建自定义环境。
说明:在组织模式下,数据库环境还可应用于权限策略管理,例如,默认情况下的生产环境管理员角色仅支持访问生产环境下的数据源,无法访问其他环境的数据源。更多信息,请参见管理角色。加密传输 是否使用 SSL 加密方式访问数据源(默认关)。数据源如果强制 SSL 加密连接,则必须开启本开关,否则连接失败。
单击右侧的开关可开启或关闭加密传输。单击加密传输左侧的>可以展开详细配置。- 加密选项:支持如下四种方式。
- Prefer:自动检测服务端的 SSL 状态,如果服务端开启了 SSL,则优先通过 SSL 连接,如果服务端未开启 SSL,则使用非 SSL 的方式连接。
- Require:无论如何都使用 SSL 方式连接数据源,如果服务端不支持该方式或由于其他原因无法建立 SSL 连接,则会连接失败。
- Verify-CA:上传 CA 证书验证服务器的服务端证书是否由受信任机构签发,防止中间人攻击(Man-in-the-MiddleAttack)。同时,可以根据需求上传客户端用户证书和密钥验证自己的身份并加密与服务器之间的通信。
- Verify-full:在 Verify-CA 的基础上,查验服务器证书的主题(例如主机名、IP 地址)与实际连接的服务器是否匹配,以确保连接的安全性。
- CA 证书:加密选项为 Verify-CA 或 Verify-Full 时需要选择,指定 CA 证书用来验证服务端证书。
- 客户端证书(可选):如果服务端请求客户端证书,则您必须上传客户端证书用来验证自己的身份。客户端证书包含用户证书(.pem)和密钥(.pk8)。
- 密钥密码:如果上传的客户端密钥文件设置了密码,则需要在此输入该密码,如果未设置,则留空。
全部配置完成后,单击创建数据源右侧的连接测试可以测试该数据源是否可以正常访问,提示连接成功即可单击创建数据源,完成数据源的添加。否则请重新检查连接设置,直到连接测试成功为止。
附录:将 NineData 的 IP 地址加入 PostgreSQL 数据库白名单
添加位于公网/自建/他云的数据源时,需要将 NineData 服务的 IP 地址添加到 PostgreSQL 数据库白名单,以允许 NineData 提供服务。
本章节以 PostgreSQL 10.9 版本为例,介绍如何添加 IP 白名单。
打开 PostgreSQL 的配置文件
postgresql.conf,该文件通常在如下路径:<PostgreSQL 安装目录>/data/postgresql.conf。找到
listen_addresses参数,删除其前面的注释(#)符号,并将其值设置'*',以允许来自所有 IP 地址的连接请求,然后保存并退出postgresql.conf文件。打开
pg_hba.conf配置文件,该文件通常在如下路径:<PostgreSQL 安装目录>/data/pg_hba.conf。找到
IPv4 local connections或IPv6 local connections行,把需要允许访问的 IP 地址段加在ADDRESS列的下方,例如,如果您需要允许来自192.168.1.0 ~ 192.168.1.255地址段的访问,则按照下方示例进行配置。# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all trust
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5保存并退出
pg_hba.conf配置文件,然后重启 PostgreSQL 服务即可生效。