天天看點

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 皆可,您的批評指正是我寫作的最大動力!