web-dev-qa-db-fra.com

PgAdmin III - Comment se connecter à la base de données lorsque le mot de passe est vide?

J'ai installé PostgreSQL 9.1 sur mon PC (Win 7). J'ai une petite application Java qui s'y connecte avec succès avec login=sa et password="". La connexion fonctionne.

Cependant, il est refusé par PgAdmin III lui-même. Je reçois:

Error connecting to the server: fe_sendauth: no password supplied

Comment me connecter à ma base de données depuis PgAdmin III avec un mot de passe vide?

MODIFIER

Ce n'est qu'un test, pas un code de production.

21

Je peux me connecter à mon instance postgres à partir de pgAdmin III sans mot de passe pour tout utilisateur, y compris les superutilisateurs tels que postgres.

Parce que vous vous connectez bien à partir d'un autre client, il n'y a aucune raison pour que vous ne puissiez pas vous connecter à partir de pgAdmin s'ils sont sur le même poste de travail - à moins qu'une règle de pare-feu sur le client lui-même n'autorise un programme mais pas un autre.

Si le problème est spécifique à ce client, vous devrez peut-être modifier un ou plusieurs des éléments suivants:

  • pg_hba.conf
Héberger tous les confiance 192.168.0.nnn/32
  • postgresql.conf
listen_addresses = '*'
  • le pare-feu sur votre serveur postgres, par exemple iptables:
-A ENTRÉE -s 192.168.0.nnn -m état --state NOUVEAU -j ACCEPTER

Mais Je vous recommande de ne rien faire de tout cela. Le manuel dit ce qui suit avec raison:

l'authentification de confiance ne convient aux connexions TCP/IP que si vous faites confiance à chaque utilisateur de chaque machine autorisé à se connecter au serveur par les lignes pg_hba.conf qui spécifient la confiance. Il est rarement raisonnable d'utiliser la confiance pour toutes les connexions TCP/IP autres que celles de localhost (127.0.0.1).

Envisagez plutôt:

  • en utilisant un mot de passe et une identification md5
  • tunneling port 5432 sur ssh

J'ai trouvé cette réponse ailleurs.

Si votre base de données se trouve sur l'hôte local, essayez de laisser le champ Hôte vide dans la connexion au lieu d'utiliser "localhost" ou "127.0.0.1". Cela indique à PgAdmin de se connecter via le socket Unix local au lieu de TCP.

31
Alex Jodidio