在我的服务器上,我尝试使用 postgresql 9.5 安装上的 usermap 对某些用户进行对等身份验证。我尝试做的是映射用户 mailreader,如您所见:
postgres=# \du
List of roles
Role name | Attributes | Member of
------------+------------------------------------------------+-----------
mailreader | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
进入系统的用户root,dovecot,postfix。因此我编辑了我的pg_ident.cong
并添加了以下内容:
mailmap dovecot mailreader
mailmap postfix mailreader
mailmap root mailreader
我还编辑pg_hba.conf
并附加了以下内容:
local mail all peer map=mailmap
当我尝试通过sudo psql -U mailreader -d mail
命令连接时,我得到:
psql:严重:用户“mailreader”的对等身份验证失败
错误。
我还尝试了以下配置:
local mail all ident map=mailmap
没有任何进展。
我能帮忙吗?
编辑1
关于该错误的生成的日志是:
2017-06-27 19:10:10 UTC [1188-1] mailreader@mail LOG: provided user name (mailreader) and authenticated user name (root) do not match
2017-06-27 19:10:10 UTC [1188-2] mailreader@mail FATAL: Peer authentication failed for user "mailreader"
2017-06-27 19:10:10 UTC [1188-3] mailreader@mail DETAIL: Connection matched pg_hba.conf line 90: "local all all
答案1
local mail app peer map=mailmap
看起来不对,您需要关闭all
或。否则,您的配置看起来是正确的。更改 后,您可能还需要重新加载 postgres 。mailreader
app
pg_hba.conf
答案2
最后我不得不评论一下这一行:
local all all peer
或者将其放在以下行下面:
local mail all ident map=mailmap
在/etc/postgresql/9.4/main/pg_hba.conf
档案中