天天看点

PostgreSQL配置文件pg_hba.conf详解前言

作者:IT邦德
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g  OCP/OCM、
Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007

微信:jem_db
QQ:2243967774
详情关注公众号:IT邦德 
QQ群:168797397、587159446
           
PostgreSQL配置文件pg_hba.conf详解前言

前言

目前PG的最新版本已经更新到了13.3,在连接客户端的时候,有authentication method 10 not supported这样的报错,故整理了以下参数文件的解读及处理方式,供大家参考

1.现象

PG 13.3版本客户端连接报如下错误
authentication method 10 not supported
查看官网说明,总结出如下解决方案
           
PostgreSQL配置文件pg_hba.conf详解前言

2.处理方法

2.1 查看版本

postgres=# select version();
postgres=# show  server_version;
           
PostgreSQL配置文件pg_hba.conf详解前言

2.2 查看用户加密算法

PostgreSQL配置文件pg_hba.conf详解前言
PostgreSQL配置文件pg_hba.conf详解前言
从上图可以看出,最新的PG13.3加密算法已做了更改,故需要调整参数文件
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0        md5
host   replication  all    0.0.0.0/0        md5
local  replication  all                    trust

说明如下:
每一行的格式为:
连接方式 连接的数据库 连接的用户 连接的主机IP 认证方式

【连接方式】
local
这条记录匹配通过 Unix 域套接字进行的联接企图
host
这条记录匹配通过TCP/IP网络进行的联接尝试

【认证方法】
trust:无条件地允许联接,不需要口令
reject:联接无条件拒绝,常用于从一个组中"过滤"某些主机
md5:要求客户端提供一个 MD5 加密的口令进行认证
password:高级的加密方式使用(PG13.3需要用这种方式scram-sha-256)
           

2.3 修改参数文件如下

host    all         all    0.0.0.0/0       password

##重新加载配置文件
postgres=# SELECT pg_reload_conf();

postgres=# SELECT name,setting,source,enumvals FROM pg_settings WHERE name = 'password_encryption';
           
PostgreSQL配置文件pg_hba.conf详解前言

再次客户端连接OK

本文如有错误或不完善的地方请大家多多指正,留言或 QQ 皆可,您的批评指正是我写作的最大动力!