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

的效果完全不同,有兴趣的哥们可以验证下。

参考:
http://postgres.cn/docs/9.6/auth-pg-hba-conf.html

posted @ 2018-09-29 18:10  peiybpeiyb  阅读(463)  评论(0编辑  收藏  举报