私のPC(Win 7)にPostgreSQL 9.1をインストールしました。小さなJavaアプリケーションがlogin=sa
およびpassword=""
。接続は機能します。
ただし、PgAdmin III自体からは拒否されます。私は得ます:
Error connecting to the server: fe_sendauth: no password supplied
空のパスワードでPgAdmin IIIからデータベースに接続するにはどうすればよいですか?
[〜#〜]編集[〜#〜]
これは単なるテストであり、製品コードではありません。
postgres
などのスーパーユーザーを含むユーザーのパスワードなしで、pgAdmin IIIから自分のpostgresインスタンスに接続できます。
別のクライアントからokで接続しているため、同じワークステーション上にある場合、pgAdminから接続できないはずはありません。クライアント自体のファイアウォールルールが1つのプログラムを許可し、別のプログラムを許可していない場合を除きます。
問題がこのクライアントに固有の場合は、次の1つ以上を変更する必要がある場合があります。
Host sa all 192.168.0.nnn/32 trust
listen_addresses = '*'
-A INPUT -s 192.168.0.nnn -m state --state NEW -j ACCEPT
しかし私はこれをしないことをお勧めします。 マニュアル は、正当な理由で次のように述べています。
信頼認証は、信頼を指定するpg_hba.conf行によってサーバーへの接続が許可されているすべてのマシン上のすべてのユーザーを信頼する場合にのみ、TCP/IP接続に適しています。 localhost(127.0.0.1)からの接続以外のTCP/IP接続に信頼を使用することはめったにありません。
代わりに、次のいずれかを検討してください。
この答えは別の場所で見つかりました。
DBがローカルホスト上にある場合は、「localhost」や「127.0.0.1」を使用するのではなく、接続の[ホスト]フィールドを空白のままにしてみてください。これは、TCPの代わりにローカルUNIXソケットを介して接続するようにPgAdminに指示します。