PostgreSQLにユーザーログインできない
FATAL: IDENT authentication failed for user "ユーザー名"
パッケージインストールされたPostgreSQL起動して、プログラムからユーザーIDによるアクセスをすると、上記エラーメッセージが表示されて、データベースにアクセスできない。
これは、localのアクセス認証が、identとなっているため、通常のユーザー名・パスワードではアクセスできなくなっている。
ユーザー名でアクセスするためには、PostgreSQLインストールディレクトリにある、pg_hba.confを修正することで、アクセス可能になります。
デフォルトインストールでは、下記のようになっています。local | all | postgres | ident sameuser | |
local | all | all | ident sameuser | |
host | all | all | 127.0.0.1/32 | md5 |
host | all | all | ::1/128 | md5 |
ローカルのアクセスをパスワード許可に変更します。
local | all | all | ident sameuser |
local | all | all | password |
PostgreSQLを再起動すれば、ユーザー名によるアクセスが可能になります。
ただし、公開時にはセキュリティホールを作らないようにするため、必要最低限の許可しか与えないようにしましょう。