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


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

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
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM