postgresql 的 pg_hba.conf 的行記錄順序
阿新 • • 發佈:2018-12-12
postgresql: 9.6
一直覺得 pg_hba.conf 的行記錄與順序無關,遵循細化優先的規則。今天在回顧 pg_hba.conf 文件時發現這種認識是錯的。
下面這段話是從文件拷貝過來的:
因為每一次連線嘗試都會順序地檢查pg_hba.conf記錄,所以這些記錄的順序是非常關鍵的。通常,靠前的記錄有比較嚴的連線匹配引數和比較弱的認證方法,而靠後的記錄有比較鬆的匹配引數和比較強的認證方法。 例如,我們希望對本地 TCP/IP 連線使用trust認證,而對遠端 TCP/IP 連線要求口令。在這種情況下為來自於 127.0.0.1 的連線指定trust認證的記錄將出現在為一個更寬範圍的客戶端 IP 地址指定口令認證的記錄前面。
# IPv4 local connections:
host all postgres 127.0.0.1/32 trust
host all all 127.0.0.1/32 md5
與
# IPv4 local connections: host all all 127.0.0.1/32 md5 host all postgres 127.0.0.1/32 trust
的效果完全不同,有興趣的哥們可以驗證下。