PgAdmin III - Come connettersi al database quando la password è vuota?


21

Ho installato PostgreSQL 9.1 sul mio PC (Win 7). Ho una piccola applicazione Java che si collega con successo con login=sae password="". La connessione funziona.

Tuttavia, viene rifiutato dallo stesso PgAdmin III. Ottengo:

Error connecting to the server: fe_sendauth: no password supplied

Come posso collegarmi al mio database da PgAdmin III con una password vuota?

MODIFICARE

Questo è solo un test, non un codice di produzione.


Non lo so per certo, ma è facile immaginare che PgAdmin non lo supporti.
Peter Eisentraut,

la tua app Java è sullo stesso client di pgAdmin?
Jack Douglas,

Risposte:


10

Posso collegarmi alla mia istanza di postgres da pgAdmin III senza una password per qualsiasi utente, inclusi i superutente come postgres.

Poiché si sta effettuando la connessione ok da un altro client, non vi è alcun motivo per cui non si dovrebbe essere in grado di connettersi da pgAdmin se si trovano sulla stessa workstation, a meno che alcune regole del firewall sul client stesso consentano un programma ma non un altro.

Se il problema è specifico per questo client, potrebbe essere necessario modificare uno o più di:

  • pg_hba.conf
host sa 192.168.0.nnn / 32 trust
  • postgresql.conf
hear_addresses = '*'
  • il firewall sul tuo server Postgres, ad es. iptables:
-A INPUT -s 192.168.0.nnn -m state --state NEW -j ACCEPT

Ma ti consiglio di non fare nulla di tutto ciò. Il manuale dice quanto segue con buone ragioni:

l'autenticazione sicura è adatta solo per le connessioni TCP / IP se si considera affidabile ogni utente su ogni macchina a cui è consentito connettersi al server dalle linee pg_hba.conf che specificano la fiducia. Raramente è ragionevole usare la fiducia per tutte le connessioni TCP / IP diverse da quelle da localhost (127.0.0.1).

Considera invece:

  • utilizzando una password e l'identificazione md5
  • tunneling port 5432 over ssh

31

Ho trovato questa risposta altrove.

Se il tuo DB si trova sull'host locale, prova a lasciare vuoto il campo host nella connessione invece di utilizzare “localhost” o “127.0.0.1 ″. Questo dice a PgAdmin di connettersi tramite il socket unix locale anziché TCP.


Aggiungiamo che la domanda originale riguardava un sistema Windows.
dezso,

3
Ah, era esattamente così. Lasciare l'host vuoto funzionava.
basicdays

Non è possibile lasciare vuoto questo campo, è obbligatorio.
Athlan,

Sembra che lasciare vuoto il campo host funzioni solo se si ha un ruolo in pg nominato come nome utente di sistema (su Linux). Altrimenti immagino che siano necessarie mappe utente.
a1an

Perfetto! Con una nuova installazione di postgresql e pgadmin, cambiando pg_hba.confper dire trustinvece che peerin questa riga - local all postgres truste lasciando vuoti i campi host e password in pgadmin, tutto funziona! Vorrei che pgadmin aggiungesse una casella di controllo per passare a socket anziché a questa interfaccia utente difficile da scoprire.
Anupam Jain,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.