web-dev-qa-db-ja.com

Postgresqlはusermapを使用してピア認証を行うことができません(提供されたユーザー名(^ dbuser ^)と認証されたユーザー名(^ sysuser ^)が一致しません)

ユーザーマップを使用して一部のユーザーをピア認証しようとしています。私がしようとしていることは、あなたが見ることができるようにユーザーのメールリーダーをマッピングすることです:

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

最後に、私はその行をコメントしなければなりませんでした:

local   all             all                                     peer

または、次の行の下に配置します。

local    mail            all                             ident map=mailmap
5