配置客户端接入认证

    • 本产品支持如下三种认证方式,这三种方式都需要配置“pg_hba.conf”文件。

      • 基于主机的认证:服务器端根据客户端的IP地址、用户名及要访问的数据库来查看配置文件从而判断用户是否通过认证。
      • 口令认证:包括远程连接的加密口令认证和本地连接的非加密口令认证。
      • SSL加密:使用OpenSSL(开源安全通信库)提供服务器端和客户端安全连接的环境。
    • “pg_hba.conf”文件的格式是一行写一条信息,表示一个认证规则,空白和注释(以#开头)被忽略。

    • 每个认证规则是由若干空格和/,空格和制表符分隔的字段组成。如果字段用引号包围,则它可以包含空白。一条记录不能跨行存在。

    1. 以操作系统用户omm登录数据库主节点。

    2. 配置客户端认证方式,允许客户端以“jack”用户连接到本机,此处远程连接禁止使用“omm”用户(即数据库初始化用户)。

      例如,下面示例中配置允许IP地址为10.10.0.30的客户端访问本机。

      这条命令在数据库主节点实例对应的“pg_hba.conf”文件中添加了一条规则,用于对连接数据库主节点的客户端进行鉴定。

      1. local DATABASE USER METHOD [OPTIONS]
      2. host DATABASE USER ADDRESS METHOD [OPTIONS]
      3. hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
      4. hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]

      因为认证时系统是为每个连接请求顺序检查“pg_hba.conf”里的记录的,所以这些记录的顺序是非常关键的。

      因此对于认证规则的配置建议如下:

      • 靠前的记录有比较严格的连接参数和比较弱的认证方法。
      • 靠后的记录有比较宽松的连接参数和比较强的认证方法。

    用户认证失败有很多原因,通过服务器返回给客户端的提示信息,可以看到用户认证失败的原因。常见的错误提示请参见。

    表 1 错误提示

    1. TYPE DATABASE USER ADDRESS METHOD
    2. "local" is for Unix domain socket connections only
    3. #表示只允许以安装时-U参数指定的用户从服务器本机进行连接。
    4. IPv4 local connections:
    5. #表示允许jack用户从10.10.0.50主机上连接到任意数据库,使用sha256算法对密码进行加密。
    6. host all jack 10.10.0.50/32 sha256
    7. #表示允许任何用户从10.10.0.0/24网段的主机上连接到任意数据库,使用sha256算法对密码进行加密,并且经过SSL加密传输。
    8. hostssl all all 10.10.0.0/24 sha256
    9. host all all 10.10.0.1/32 reject