openGauss学习笔记-98 openGauss 数据库管理-管理数据库安全-客户端接入认证之配置客户端接入认证

98.1 背景信息

如果主机需要远程连接数据库,必须在数据库系统的配置文件中增加此主机的信息,并且进行客户端接入认证。配置文件(默认名称为pg_hba.conf)存放在数据库的数据目录里。hba(host-based authentication)表示是基于主机的认证。

  • 本产品支持如下三种认证方式,这三种方式都需要配置“pg_hba.conf”文件。
    • 基于主机的认证:服务器端根据客户端的IP地址、用户名及要访问的数据库来查看配置文件从而判断用户是否通过认证。
    • 口令认证:包括远程连接的加密口令认证和本地连接的非加密口令认证。
    • SSL加密:使用OpenSSL(开源安全通信库)提供服务器端和客户端安全连接的环境。
  • “pg_hba.conf”文件的格式是一行写一条信息,表示一个认证规则,空白和注释(以#开头)被忽略。
  • 每个认证规则是由若干空格和/,空格和制表符分隔的字段组成。如果字段用引号包围,则它可以包含空白。一条记录不能跨行存在。

98.2 操作步骤

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

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

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

gs_guc set -N all -I all -h "host all jack 10.10.0.30/32 sha256"

这条命令在数据库主节点实例对应的“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]

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

因此对于认证规则的配置建议如下: 靠前的记录有比较严格的连接参数和比较弱的认证方法。靠后的记录有比较宽松的连接参数和比较强的认证方法。

98.3 异常处理

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

表 1 错误提示

98.4 示例

TYPE  DATABASE        USER            ADDRESS                 METHOD

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

openGauss学习笔记-98 openGauss 数据库管理-管理数据库安全-客户端接入认证之配置客户端接入认证-LMLPHP

10-13 18:41