すべてのアップデートとpostgresql 8.4を含む新しいubuntu 10.10をインストールしています
postgresqlがログイン+パスワード接続を受け入れるために、次の方法で設定しました。
Sudo su postgres
psql
ALTER USER postgres WITH PASSWORD 'password';
CREATE DATABASE myapp;
\q
exit
Sudo vi /etc/postgresql/8.4/main/pg_hba.conf
change "local all all indent" to "local all all trust"
しかし、驚くべきことに、これは機能していません!コマンド
psql -U postgres password
エラーで評価します:
psql: FATAL: Ident authentication failed for user "postgres"
psql -U
を機能させる方法のヒントはありますか?
「postgres」ユーザーにident認証を残すことをお勧めします。デフォルトでは、Ubuntuは「postgres」ユーザーを使用してアップグレードやバックアップなどを実行するため、パスワードを指定せずにログインできる必要があります。
別のユーザーを作成し(おそらく独自のユーザー名で)、管理者権限も付与することをお勧めします。次に、ローカル接続でそのユーザーをパスワードで使用できます。
Pg_hba.confの関連部分は次のようになります。
# allow postgres user to use "ident" authentication on Unix sockets
# (as per recent comments, omit "sameuser" if on postgres 8.4 or later)
local all postgres ident sameuser
# allow all other users to use "md5" authentication on Unix sockets
local all all md5
# for users connected via local IPv4 or IPv6 connections, always require md5
Host all all 127.0.0.1/32 md5
Host all all ::1/128 md5
また、psql -U postgres password
はあなたが望むことをしないことに注意してください。パスワードはコマンドラインで指定しないでください。それは、ユーザー「postgres」として「password」という名前のデータベースにログインしようとします。
代わりにpsql -U postgres myapp
を使用する必要があります。パスワードが要求されるように適切に設定されている場合、Postgresは自動的にパスワードの入力を求めます。
パスワードを自動的に入力する場合は、 $ HOME/.pgpassファイルに配置
あなたのpg_ident.conf
ファイルの設定が間違っています。また、試しましたか
psql -U postgres -W
これを引き起こす可能性があるもう1つのことは、期限切れの資格情報です。これはバージョン8では発生しなかったと思いますが、バージョン9ではpgadminで新しいロールを作成すると、有効期限が切れた状態で作成され、ログインできるようになる前にロールの有効期限を変更またはクリアする必要がありますそれ。