3

これは私の関連部分ですpg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     ident
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

pidentd サービスが実行されています。

ee1 にログオンしようとすると (デフォルトのユーザーは postgres だと思います):

psql ee1 

「ユーザーpostgresのピア認証に失敗しました」と表示されます

  1. peer「postgres」の認証はどこで設定しましたか? ですident

  2. の次の行を変更するとpg_hba.conf:

    local   all             all                                 ident
    

    local   all             all                                 md5
    

    パスワードの入力を求められますが、ログインできます。ローカル接続タイプを変更すると、postgres ユーザーに影響するのはなぜですか?

4

2 に答える 2

3

ident認証とは、OSユーザーがDBユーザーと一致することを意味します。ドキュメントの状態に関連するエントリとして、TCP/IP接続のみがサポートされています。Unixソケットで使用する場合は、代わりにピア認証方式が使用されます。

postgresまた、デフォルトのユーザーはではなく、現在ログインしているユーザーであることに注意してください。

于 2012-08-11T11:00:13.207 に答える
2

localはpg_hba.confで使用される接続タイプであり、localhostはローカルループバックのネットワークアドレスであり、IPv4アドレス127.0.0.1またはIPv6に変換されます::1私はについてのマニュアル
を引用します:pg_hba.conf

ローカル

このレコードは、Unixドメインソケットを使用した接続試行と一致します。このタイプのレコードがない場合、Unixドメインソケット接続は許可されません。

亭主

このレコードは、TCP/IPを使用して行われた接続試行と一致します。ホストレコードは、SSLまたは非SSL接続の試行のいずれかに一致します。

注:デフォルトの動作ではローカルループバックアドレスlocalhost でのみTCP / IP接続をリッスンするため、サーバーがlisten_addresses構成パラメーターの適切な値で開始されない限り、リモートTCP/IP接続はできません。

postgresql.confのGUC*listen_addresseslocalhostの場合、設定としても機能します。
* GUC:大統一構成

デフォルト値はlocalhostです。これにより、ローカルTCP/IP「ループバック」接続のみを確立できます。

大胆な強調鉱山。

于 2012-08-11T14:34:16.900 に答える