编辑1

编辑1

在我的服务器上,我尝试使用 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 。mailreaderapppg_hba.conf

答案2

最后我不得不评论一下这一行:

local   all             all                                     peer

或者将其放在以下行下面:

local    mail            all                             ident map=mailmap

/etc/postgresql/9.4/main/pg_hba.conf档案中

相关内容