pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者間的關係

pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者間的關係:php

1.pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者關係
pg_hba.conf 是 PostgreSQL 數據庫的客戶端認證配置文件,用於對訪問 PostgreSQL 數據庫的請求實施訪問認證控制。
pool_hba.conf 是 PGPool-II 中間件的客戶端認證配置文件,用於對訪問 PGPool-II 中間件的請求實施訪問認證控制。同時,由於 PGPool-II 從架構上位於 PostgreSQL 以前,所以請求須要先經過 PGPool-II 的認證控制,隨後經過 PostgreSQL 的認證控制。
pool_passwd 是 PGPool-II 的認證文件。一方面,因爲 PGPool-II 沒法獲取 PostgreSQL 數據庫上的用戶密碼信息,所以其經過檢查 pool_passwd 內用戶名及密碼的方式,校驗請求輸入的用戶名及密碼是否正確。另外一方面,當請求經過 PGPool-II 認證後,PGPool-II 將利用 pool_passwd 內保存的用戶名及密碼,鏈接後端 PostgreSQL 數據庫,進行請求。(待驗證)
2.pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者對認證結果的影響
以 md5 認證控制方式爲例,pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者對認證結果的影響以下表所示。
pg_hba.conf 設置的認證控制方式 pool_hba.conf 設置的認證控制方式 用戶密碼值是否存在於pool_passwd 結果
md5 md5 yes PGPool-II 及 PostgreSQL 層面均進行 md5 認證。 
md5 md5 no PGPool-II 及 PostgreSQL 層面均進行 md5 認證,但因爲用戶密碼沒有保存於 pool_passwd 文件中,致使 PGPool-II 層驗證失敗,報錯 "MD5" authentication with pgpool failed for user "XX"
md5 trust yes/no 當 PGPool-II 工做於複製、主備、並行等模式時,沒法進行 md5 認證。PGPool-II 接收到請求後,直接利用 pool_passwd 內的用戶密碼值,對後端 PostgreSQL 進行請求。
對於非上述狀況的,則採用 md5 認證。
trust md5 yes PGPool-II 層面驗證成功,直接對無須驗證的 PostgreSQL 後端數據庫發起請求。
trust md5 no PGPool-II 層面驗證失敗,報錯 "MD5" authentication with pgpool failed for user "XX"
trust trust yes/no 不作任何驗證
 
參考資料:
(1).https://pgpool.net/mediawiki/index.php/FAQ#I_created_pool_hba.conf_and_pool_passwd_to_enable_md5_authentication_through_pgpool-II_but_it_does_not_work._Why.3F
相關文章
相關標籤/搜索