了解 pg_hba.conf 中 postgreSQL 的 ident、md5、密码

San*_*dra 2 postgresql linux ubuntu database centos

如果我有以下内容 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
Run Code Online (Sandbox Code Playgroud)

当我没有任何东西时pg_ident.conf,第二条local规则就过时了吗?

第一host行是否被第二行推翻?

由于客户端(Web 应用程序)将使用 连接到数据库localhost,那么我选择md5还是 有关系password吗?我的意思是,身份验证方法是一个抽象层,所以客户端不知道密码是如何检查的?

Jen*_*y D 5

postgresql 文档

具有匹配连接类型、客户端地址、请求的数据库和用户名的第一条记录用于执行身份验证。没有“失败”或“备份”:如果选择了一条记录并且身份验证失败,则不考虑后续记录。如果没有记录匹配,则拒绝访问。

拥有两行完全相似的行,除了仅进行身份验证将无法按您喜欢的方式工作 - 只会使用第一行。所以是的,第二条local规则已经过时了。第二host行也是如此;它永远不会覆盖第一个。