我通过在以下内容中md5
为用户配置了身份验证:foo
pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
local all foo md5
当我尝试以psql
Linux 用户身份连接(使用)时foo
,psql
要求输入密码并且连接成功。但是,如果我psql
以其他 Linux 用户身份运行,我会收到以下错误:
psql: FATAL: password authentication failed for user "foo"
这种行为的原因是什么?我的印象是,只有在我使用peer
orident
身份验证方法时才需要这样做。
编辑:我正在使用命令psql -U foo -W
进行连接。当我在命令前面加上sudo -u foo
它的前缀时;当我不这样做时,它会给出上述错误。很抱歉在发布原始问题时没有提及这一点!
编辑2:
以下是我按顺序排列的所有未注释行pg_hba.conf
:
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local all foo md5
local all all 127.0.0.1/32 md5
local all all ::1/128 md5