web-dev-qa-db-fra.com

pgadmin me donne l'erreur: pas de mot de passe fourni

J'ai installé postgresql 9.2 sur Linux (kubuntu) et la dernière version de pgadmin3, mais lorsque je les connecte, j'ai l'erreur

Une erreur est survenue: Erreur de connexion au serveur: fe_sendauth: aucun mot de passe fourni.

Que puis-je faire?

J'ai également configuré Tomcat pour mon application Web en Java. En fait, postgresql fonctionnait avant d'essayer mon application.

14
DarkCoffee

La nécessité d'un mot de passe dépend de vos paramètres dans pg_hba.conf . Et vous pouvez vous connecter de différentes manières - différents paramètres de pg_hba.conf peuvent s’appliquer.

Je cite l'aide fournie avec pgAdmin pour le champ "Hôte" dans les paramètres de connexion ("serveur"):

L'hôte est l'adresse IP de la machine à contacter, ou bien l'adresse complète nom de domaine qualifié. Sur les systèmes Unix, le champ d'adresse peut être laissé en blanc pour utiliser le socket de domaine Ungre par défaut de PostgreSQL sur le machine locale, ou être défini sur un autre chemin contenant un PostgreSQL prise. Si un chemin est entré, il doit commencer par un “/”. Le port nombre peut également être spécifié.

Si vous vous connectez via le socket Unix, les règles pour "local" s'appliquent. Alors que, lors de la connexion via TCP/IP, les règles "Host" (ou "hostssl") s'appliquent.

Si vous avez une ligne comme celle-ci en haut de votre fichier pg_hba.conf:

local    all     all     peer

ou:

local    all     all     ident

.. alors vous pouvez vous connecter localement sans mot de passe si votre utilisateur système est "postgres" et votre utilisateur de base de données est également "postgres".

10
Erwin Brandstetter

Je me rends compte que c’est une question vieille de plusieurs années, mais j’ai rencontré le même problème aujourd’hui et j’ai une solution qui utilise trust de manière limitée mais utile.

Comme dans de nombreux ateliers de développement, lorsque les développeurs ont besoin d'un mot de passe post-assurance QA, ils le crient, l'envoient, l'envoient par courrier électronique, l'écrivent sur leur front, etc. Et je me dis "C'est vraiment mauvais. un moyen d'utiliser PKI ici. " Nous utilisons également pgAdmin3.

Tout d’abord, ajoutez une ligne comme celle-ci à votre fichier pg_hba.conf, où dev représente l’utilisateur des développeurs de votre boutique:

Host all dev 127.0.0.1/32 trust

Déposez la clé publique des développeurs dans leur dossier authorized_keys sur le serveur de base de données. Maintenant, placez-les sur le serveur avec l’indicateur -L avec une commande semblable à celle-ci: 

ssh -i ~/.ssh/id_rsa -L5432:127.0.0.1:5432 -vvv 101.102.103.104

Cela permet d'utiliser le port postgres comme s'il s'agissait de localhost. Bien sûr, remplacez la clé serveur et assurez-vous de mapper localement sur un port ouvert (si vous avez un postgres en cours d'exécution, il est probablement lié à 5432). J'utilise un joli drapeau verbeux pour pouvoir résoudre facilement tous les problèmes de ssh.

Ouvrez un autre terminal et lancez cette commande:

psql -h 127.0.0.1 -U dev -p 5432

Vous devriez avoir accès à la base de données et ne jamais être invité à entrer un mot de passe, ce qui est très bien, car sinon, les développeurs le renonceront sans trop se soucier de la sécurité, le transmettant comme un bonbon d'Halloween.

A partir de maintenant, PgAdmin3 vous demandera toujours un mot de passe, même si - en clair comme le jour - vous n'en avez pas besoin. Mais les autres interfaces graphiques de Postgres ne le seront pas. Essayez Postico. C'est en version bêta mais fonctionne très bien.

J'espère que cette réponse aidera tous ceux qui, comme moi, préfèrent utiliser l'ICP pour l'authentification postgres plutôt que le partage de mots de passe bon gré mal gré. 

6
bbuckley123

Rencontré ce problème récemment.

Si vous utilisez PostgreSQL sur une machine locale et que psql fonctionne bien sans vous connecter, essayez le menu File - Add Server - Properties tab de pgadmin3, renseignez le champ Name pour cette connexion, laissez les champs Host et Password vides, puis cliquez sur ok.

à partir de pgadmin docs

Sur les systèmes Unix, le champ d'adresse peut être laissé vide pour utiliser le fichier Domain PostgreSQL Unix Domain Socket par défaut sur la machine locale, ou être défini vers un autre chemin contenant une socket PostgreSQL. Si un chemin est entré, il doit commencer par un “/”.

A travaillé sur les tests Debian (pgadmin3 1.22, PostgreSQL 11), sans toucher à pg_hba.conf.

0
zhazha