问题现象
使用gs_guc set -A命令修改pg_hba.conf配置文件后,配置结果如下:
# IPv4 local connections:
host all all 10.0.0.0/8 sha256
host all all 10.4.6.20/32 sha256
预期结果是仅有IP地址为10.4.6.20的客户端可以连接GaussDB数据库。
实际结果是所有IP地址为10...*网段的客户端都可以连接GaussDB数据库。
可能原因
gs_guc set -A命令将在pg_hba.cof文件中添加一条配置项到所属类别的最后一行,而pg_hba.conf文件中配置项的生效规则为:前一行的规则优先生效。
如问题现象中所示,由于第一行的规则比第二行宽松,因此第二行的规则不能生效。
说明:
如果配置项是严格到宽松,则后面新添加的配置项能够生效。
如果前面有更宽松的配置项,会导致后面添加的较严格的配置项无法生效。
处理步骤
手动修改配置文件,去掉前面比较宽松的配置项,仅留下需要的配置项。
# IPv4 local connections:
host all all 10.4.6.20/32 sha256
重启数据库使配置生效,或 gs_ctl reload 重新加载。