配置远程连接数据库(可选)
数据库安装并启动后,用户可以在数据库服务器本地通过客户端工具直接建立本地连接。如果需要通过主机的 IP 地址或者域名连接到远程数据库服务器,需要配置客户端接入认证策略。
配置文件 pg_hba.conf 位于数据库的数据目录 $PGDATA 中。
操作步骤
- 以安装 VexDB 的操作系统用户身份,登录数据库实例所在主机。
- 打开配置文件 pg_hba.conf。
vi $PGDATA/pg_hba.conf
- 配置认证策略。
pg_hba.conf 文件格式中一行对应一个认证规则,一条记录不能跨行存在。空白行和以 # 开头(即被注释)的行被忽略。
pg_hba.conf 文件中的每条记录可以是下面四种格式之一:local DATABASE USER METHOD [OPTIONS] host DATABASE USER ADDRESS METHOD [OPTIONS] hostssl DATABASE USER ADDRESS METHOD [OPTIONS] hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
例如以下配置示例,表示允许来自 IP 地址 xx.xx.xx.xx 的客户端通过 mytest 用户连接到所有数据库,32 表示子网掩码为 1 的位数,即 255.255.255.255。连接方式为 trust,即不需要密码验证。host all mytest xx.xx.xx.xx/32 trust
- 保存文件并使用以下命令重启数据库,使修改生效。
vb_ctl restart
配置文件参考
参数名称 | 描述 | 取值范围 |
---|---|---|
local | 表示这条记录只接受通过 Unix 域套接字进行的连接。没有这种类型的记录,就不允许 Unix 域套接字的连接。只有在从服务器本机使用 vsql 连接且在不指定-U 参数的情况下,才是通过 Unix 域套接字连接。 | - |
host | 表示这条记录既接受一个普通的 TCP/IP 套接字连接,也接受一个经过 SSL 加密的 TCP/IP 套接字连接。 | 连接地址 |
hostssl | 表示这条记录只接受一个经过 SSL 加密的 TCP/IP 套接字连接。 | 用 SSL 进行安全的连接。。 |
hostnossl | 表示这条记录只接受一个普通的 TCP/IP 套接字连接。 | - |
DATABASE | 声明记录所匹配且允许访问的数据库。 | |
USER | 声明记录所匹配且允许访问的数据库用户。 | |
ADDRESS | 指定与记录匹配且允许访问的 IP 地址范围。 | 支持 IPv4和 IPv6,可以使用如下两种形式来表示: IP 地址/掩码长度。例如,10.10.0.0/24 IP 地址子网掩码。例如,10.10.0.0 255.255.255.0 说明以 IPv4格式给出的 IP 地址会匹配那些拥有对应地址的 IPv6连接,比如127.0.0.1将匹配 IPv6地址 ::ffff:127.0.0.1 |
METHOD | 声明连接时使用的认证方法。 | 本产品支持如下几种认证方式,详细解释请参考表格认证方式:trustrejectmd5(不推荐使用,默认不支持,可通过password_encryption_type参数配置sha256certgss(仅用于 VexDB 内部节点间认证)sm3scram-sha256ldap |
认证方式
认证方式 | 说明 |
---|---|
trust | 采用这种认证模式时,本产品只完全信任从服务器本机使用 vsql 且不指定-U 参数的连接,此时不需要口令。trust 认证对于单用户工作站的本地连接是非常合适和方便的,通常不适用于多用户环境。如果想使用这种认证方法,可利用文件系统权限限制对服务器的 Unix 域套接字文件的访问。要使用这种限制有两个方法: |
reject | 无条件地拒绝连接。常用于过滤某些主机。 |
md5 | 要求客户端提供一个 md5加密的口令进行认证。 不推荐使用 md5认证,因为 md5为不安全的加密算法,存在网络安全风险。VexDB 保留 md5认证和密码存储,是为了便于第三方工具的使用(比如 TPCC 评测工具)。 |
sha256 | 要求客户端提供一个 sha256算法加密的口令进行认证,该口令在传送过程中结合 salt(服务器发送给客户端的随机数)的单向 sha256加密,增强了安全性。 |
cert | 客户端证书认证模式,此模式需进行 SSL 连接配置且需要客户端提供有效的 SSL 证书,不需要提供用户密码。 该认证方式只支持 hostssl 类型的规则。 |
gss | 使用基于 gssapi 的 kerberos 认证。 该认证方式依赖 kerberos server 等组件,仅支持 VexDB 内部通信认证。当前版本暂不支持外部客户端通过 kerberos 认证连接。 开启 VexDB 内部kerberos 认证会使增加内部节点建连时间,即影响首次涉及内部建连的 SQL 操作性能,内部连接建立好后, 后续操作不受影响。 |
sm3 | 国密 SM3算法,目前只支持 vsql、JDBC、ODBC 三种连接方式 |
scram-sha256 | 支持 SCRAM 认证,SCRAM 是一种基于盐(salt)和挑战-响应(challenge-response)的密码认证协议。 |
ldap | 客户端使用 LDAP 服务器进行登录认证。配置编译时加上--with-ldap选项。假设 ldap 服务器 IP 为192.168.1.10,在 pg_hba.conf 中配置 ldap 认证: local all all ldap ldapserver=192.168.1.10 ldapprefix=“uid=” ldapsuffix=“,ou=People,o=System Support,dc=my-domain,dc=com” host all all 127.0.0.1⁄32 ldap ldapserver=192.168.1.10 ldapprefix=“uid=” ldapsuffix=“,ou=People,o=System Support,dc=my-domain,dc=com” |