it-swarm-eu.dev

PgAdmin III - Wie stelle ich eine Verbindung zur Datenbank her, wenn das Passwort leer ist?

Ich habe PostgreSQL 9.1 auf meinem PC installiert (Win 7). Ich habe eine kleine Java -Anwendung, die mit login=sa Und password="" Erfolgreich eine Verbindung herstellt. Die Verbindung funktioniert.

Es wird jedoch von PgAdmin III selbst abgelehnt. Ich bekomme:

Error connecting to the server: fe_sendauth: no password supplied

Wie verbinde ich mich mit einem leeren Passwort von PgAdmin III zu meiner Datenbank?

EDIT

Dies ist nur ein Test, kein Produktionscode.

21

Ich kann von pgAdmin III aus eine Verbindung zu meiner Postgres-Instanz herstellen, ohne ein Kennwort für einen Benutzer, einschließlich Superuser wie postgres.

Da Sie eine Verbindung von einem anderen Client aus herstellen, gibt es keinen Grund, warum Sie keine Verbindung von pgAdmin aus herstellen sollten, wenn sich diese auf derselben Workstation befinden - es sei denn, eine Firewall-Regel auf dem Client selbst erlaubt ein Programm, aber kein anderes.

Wenn das Problem für diesen Client spezifisch ist, müssen Sie möglicherweise eines oder mehrere der folgenden Elemente ändern:

  • pg_hba.conf
Host sa all 192.168.0.nnn/32 vertrauen
  • postgresql.conf
listen_addresses = '*'
  • die Firewall auf Ihrem Postgres-Server, z. B. iptables:
-A INPUT -s 192.168.0.nnn -m state --state NEW -j ACCEPT

Aber Ich empfehle Ihnen, nichts davon zu tun. Das Handbuch sagt aus gutem Grund Folgendes:

die Vertrauensauthentifizierung ist nur für TCP/IP-Verbindungen geeignet, wenn Sie jedem Benutzer auf jedem Computer vertrauen, der über die Zeilen pg_hba.conf, die das Vertrauen angeben, eine Verbindung zum Server herstellen darf. Es ist selten sinnvoll, Vertrauen für andere TCP/IP-Verbindungen als die von localhost (127.0.0.1) zu verwenden.

Betrachten Sie stattdessen entweder:

  • unter Verwendung eines Passworts und einer MD5-Identifikation
  • tunnelport 5432 über SSH

Ich habe diese Antwort woanders gefunden.

Wenn sich Ihre Datenbank auf dem lokalen Host befindet, lassen Sie das Feld Host in der Verbindung leer, anstatt "localhost" oder "127.0.0.1" zu verwenden. Dies weist PgAdmin an, anstelle von TCP eine Verbindung über den lokalen Unix-Socket herzustellen.

31
Alex Jodidio