web-dev-qa-db-ja.com

PgAdmin III-パスワードが空のときにデータベースに接続する方法

私のPC(Win 7)にPostgreSQL 9.1をインストールしました。小さなJavaアプリケーションがlogin=saおよびpassword=""。接続は機能します。

ただし、PgAdmin III自体からは拒否されます。私は得ます:

Error connecting to the server: fe_sendauth: no password supplied

空のパスワードでPgAdmin IIIからデータベースに接続するにはどうすればよいですか?

[〜#〜]編集[〜#〜]

これは単なるテストであり、製品コードではありません。

21

postgresなどのスーパーユーザーを含むユーザーのパスワードなしで、pgAdmin IIIから自分のpostgresインスタンスに接続できます。

別のクライアントからokで接続しているため、同じワークステーション上にある場合、pgAdminから接続できないはずはありません。クライアント自体のファイアウォールルールが1つのプログラムを許可し、別のプログラムを許可していない場合を除きます。

問題がこのクライアントに固有の場合は、次の1つ以上を変更する必要がある場合があります。

  • pg_hba.conf
Host sa all 192.168.0.nnn/32 trust
  • postgresql.conf
listen_addresses = '*'
  • postgresサーバーのファイアウォール、例えばiptables:
-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接続に信頼を使用することはめったにありません。

代わりに、次のいずれかを検討してください。

  • パスワードとmd5識別の使用
  • sSHを介したポート5432のトンネリング

この答えは別の場所で見つかりました。

DBがローカルホスト上にある場合は、「localhost」や「127.0.0.1」を使用するのではなく、接続の[ホスト]フィールドを空白のままにしてみてください。これは、TCPの代わりにローカルUNIXソケットを介して接続するようにPgAdminに指示します。

31
Alex Jodidio