psqlコマンドがpostgre権限で拒否される

2011/01/11

CentOS PostgreSQL8.1.2の環境でpsqlコマンドが実行できない。

psql: FATAL: no pg_hba.conf entry for host "[local]", user "postgres", database "postgres", SSL off

ホストがローカル、ユーザがpostgres、SSLがオフで実行できない?

pg_hba.confを見直すもだめ・・・と調べていたところ、

localこのレコードはUnixドメインソケットを使用する接続に対応します。 この種類のレコードを使用しないと、Unixドメインソケット経由の接続は拒否されます。

UNIXドメインソケット

LinuxなのにUnixドメインソケットってなんぞや? UNIXドメインソケットとは

要はローカルマシン上のプロセスが経由するソケットがUNIXドメインソケット。

PostgreSQLのセキュリティ

あれ?localなんて設定したことあったっけ?これだけで大丈夫だった機がするけど・・・。

host    all         all         127.0.0.1/32          trust

一応と調べてみると PostgreSQL のセキュリティ

どうやら、UnixドメインソケットとTCP/IPソケットの2種類があり、未指定の場合は Unixドメインソケットを利用するとのこと。

pg_hba.confに設定追加

local   all         all                               trust