1. 程式人生 > >postgresql 的 pg_hba.conf 的行記錄順序

postgresql 的 pg_hba.conf 的行記錄順序

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

的效果完全不同,有興趣的哥們可以驗證下。