Postgresql

Postgresql 無法使用 usermap 進行對等身份驗證(提供的使用者名 (^dbuser^) 和經過身份驗證的使用者名 (^sysuser^) 不匹配)

  • September 6, 2018

我正在嘗試使用 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.conf並放置了以下內容:

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                                     peer"

最後我不得不評論這一行:

local   all             all                                     peer

或將其放在以下行下方:

local    mail            all                             ident map=mailmap

引用自:https://dba.stackexchange.com/questions/177142