如果我在我的pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local all all trust
local all all ident
host rt4 rt_user 127.0.0.1/32 md5
host rt4 rt_user 127.0.0.1/32 password
当我没有任何内容时pg_ident.conf
,第二条local
规则是否就过时了?
第一host
行是否被第二行否决了?
由于客户端(Web 应用程序)将使用 连接到数据库localhost
,那么我选择md5
或是否重要password
?我的意思是,身份验证方法是否是一个抽象层,因此客户端不知道如何检查密码?
答案1
第一个具有匹配的连接类型、客户端地址、请求的数据库和用户名的记录用于执行身份验证。没有“失败”或“备份”:如果选择了一条记录并且身份验证失败,则不会考虑后续记录。如果没有匹配的记录,则拒绝访问。
两行代码除了身份验证之外完全相似,但不会按照您喜欢的方式工作 - 只会使用第一行。所以是的,第二条local
规则已经过时了。第二行也是如此host
;它永远不会覆盖第一行。