Vous n'êtes pas identifié(e).

#1 19/02/2017 22:03:10

psql/problème mot de passe

(Postgres 9.6/Windows 8.1)

Bonjour,

Je suis novice sous Postgresql, que je suis en train de découvrir.

Lorsque je veux utiliser les prompts "prêts à l'emploi" fournis lors de l'install (pg_dump, etc et bien sûr psql), un mot de passe m'est demandé.
Lorsque je saisis celui défini pour l'utilisateur/rôle 'postgres', il n'est pas reconnu et le prompt se ferme.

Il y a sans doute certains aspects liés à l'authentification que je maîtrise mal, et j'avoue que j'ai pas mal cherché sur internet avant de poster sur ce forum.
Vous serait-il possible de m'éclairer sur la question et m'indiquer un moyen de m'en sortir?
Un grand merci par avance.

Cordialement,
Jean-Louis

Hors ligne

#2 19/02/2017 22:34:27

gleu
Administrateur

Re : psql/problème mot de passe

Le plus simple est de changer le mode d'authentification par un mode sans mot de passe. Pour cela, il vous faut modifier le fichier pg_hba.conf et indiquer la méthode trust à la place de la méthode actuellement utilisée. Ceci fait, après avoir enregistré la modification, il faut indiquer à PostgreSQL de recharger sa configuration. Dans votre cas (ie, sous Windows), le plus simple est de redémarrer PostgreSQL. Ensuite, il devrait vous être possible de vous connecter. Il ne vous restera qu'à changer le mot de passe et à modifier de nouveau le pg_hba.conf pour qu'il exige de nouveau la saisie d'un mot de passe.


Guillaume.

Hors ligne

#3 20/02/2017 09:45:03

Re : psql/problème mot de passe

Merci beaucoup pour cette réponse rapide.

Je viens de tester : il y a du mieux mais le prompt, à peine affiché, se referme aussitôt avec le message :
Le rôle 'Jean-Louis' n'existe pas.
(Jean-Louis étant mon nom d'utilisateur sous Windows ; pour info, je suis sur PC autonome : PostgreSQL est installé en local).

Dois-je re-potasser la doc concernant les rôles et les utilisateurs?...
En fait, ce qui me gêne un peu, c'est qu'une grande partie des commandes d'administration que je souhaite apprendre doivent être effectuées sur prompt et que comme je n'arrive pas à me connecter sur console, euh... je "boucle"...

En tous les cas, bravo pour l'aide et la réactivité.

Cordialement,
Jean-Louis

Hors ligne

#4 20/02/2017 09:52:27

Arkhena
Membre

Re : psql/problème mot de passe

Bonjour,

Vous pouvez créer l'utilisateur Jean-Louis avec l'utilitaire createuser.

Cordialement,

Arkhena

Hors ligne

#5 20/02/2017 11:39:29

Re : psql/problème mot de passe

Bonjour Arkhena,

A vrai dire, je ne peux pas utiliser l'utilitaire createuser puisqu'il me dit que le rôle Jean-Louis n'existe pas...

J'ai donc créé un rôle Jean-Louis directement via la commande SQL
CREATE ROLE "Jean-Louis" SUPERUSER ;

Par SELECT rolname FROM pg_roles;, j'ai confirmation que ce rôle est bien créé (il est dans la table appropriée, avec postgres et pg_signal_backend). Toutefois, j'ai toujours le même souci : les prompts me signalent que l'utilisateur/rôle Jean-Louis est manquant.

(Pour rappel, j'ai bien modifié avec trust dans le fichier pg.hba.conf.)

Cordialement
Jean-Louis

Hors ligne

#6 20/02/2017 18:18:41

gleu
Administrateur

Re : psql/problème mot de passe

Il y a de fortes chances que Postgresql le transforme en minuscule. Il faudrait renommer votre utilisateur (ALTER USER) en jean-louis.


Guillaume.

Hors ligne

#7 20/02/2017 19:14:30

Re : psql/problème mot de passe

J'ai pratiqué la modification mais sans succès : toujours le prompt qui s'affiche et se ferme presque aussi vite (à peine le temps de voir le message indiquant que l'utilisateur Jean-Louis n'existe pas).

Je me suis peut-être mal expliqué et je me permets d'en profiter pour revenir sur deux choses :
- lorsque je parle de prompts, je veux bien désigner les applications clients console livrées avec PostgreSQL ;
- apparemment, le rôle/utilisateur auquel fait référence le message d'erreur correspond à mon identifiant de session Windows (admin). Cela a-t-il un rapport quelconque avec le problème?

Merci beaucoup pour l'aide que vous m'apportez.

Cordialement,
Jean-Louis

Hors ligne

#8 20/02/2017 19:23:52

gleu
Administrateur

Re : psql/problème mot de passe

Ce qui m'étonne principalement, c'est qu'il ne vous demande pas le nom d'utilisateur que vous voulez utiliser pour la connexion. À moins que vous n'utilisiez l'invite de commande vous -même. Vous tapez psql vous -même ? si oui, avez-vous testé l'option -U avec le nom de l'utilisateur ?

style : psql -U postgres


Guillaume.

Hors ligne

#9 20/02/2017 19:34:04

dverite
Membre

Re : psql/problème mot de passe

Les commandes du genre createuser ou psql prennent un argument -U où l'on peut spécifier un utilisateur.
En mettant -U postgres il n'utilisera pas "Jean-Louis" mais postgres, qui est le super-utilisateur que l'installation
a dû créer.
Si de plus pg_hba.conf a été changé dans ce sens il ne demandera pas de mot passe.

Dans le cas de createuser le -U ne désigne pas l'utilisateur à créer mais bien d'un utilisateur existant
avec lequel se connecter pour pouvoir en créer un autre. Il est impossible de créer un nouvel
utilisateur si on n'a pas déjà la faculté de se connecter avec un utilisateur existant, et qui plus est,
qui a le droit d'en créer d'autres.

Ceci dit pour ma part je ne comprends pas ce que sont: les prompts "prêts à l'emploi"
Quand j'installe pg9.6 sur Windows 8.1 téléchargé de entreprisedb, je ne vois rien à cliquer nulle part
une fois l'install terminée. J'ouvre une invite de commandes cmd.exe, puis dedans
cd c:\Program Files\PostgreSQL\9.6\bin et je lance les commandes à la main à partir de là.
Evidemment Il est aussi possible d'ajouter ce répertoire à son PATH pour les lancer de n'importe où.

Hors ligne

#10 21/02/2017 11:16:56

Re : psql/problème mot de passe

Bonjour,

Je réponds à la fois à Guillaume et à "dverite".


Dans le dossier 'C:\Program Files\PostgreSQL\9.6\bin', il y a une série d'applis : clusterdb, createdb...psql...
Ces applis ouvrent une console. C'est là où un mot de passe m'était initialement demandé.

Du coup, j'ai modifié pg_hba.conf de la façon suivante :

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust

(pour info, pg_hba.conf se trouve sur un disque dur externe, dans la mesure où à l'install, j'ai opté pour le stockage des data sur ce disque dur externe)

Actuellement donc, lorsque j'ouvre par exemple psql (dans \bin), le prompt s'affiche, juste le temps de voir le message indiquant que l'utilisateur Jean-Louis n'existe pas, et se referme aussi vite.

...cmd.exe, je veux bien l'utiliser mais je ne le trouve nulle part! Il faut le télécharger?? (ou alors c'est l'invite de commandes type de Windows?...)

Merci beaucoup pour vos remarques et réponses.

Cordialement,
Jean-Louis

Hors ligne

#11 21/02/2017 11:54:08

yohmartin
Membre

Re : psql/problème mot de passe

en fait par défaut, psql utilise l'utilisateur local de ton systeme (ici Jean-Louis).
A mon avis, le seul utilisateur crée dans la base est postgres.
pour te connecter a la base, tu fais un psql -U postgres.

Une fois que c'est ok, tu pourras créer l'utilisateur jean-louis

Dernière modification par yohmartin (21/02/2017 11:54:21)

Hors ligne

#12 21/02/2017 11:54:48

dverite
Membre

Re : psql/problème mot de passe

ou alors c'est l'invite de commandes type de Windows?

Oui. Voir par exemple http://fr.wikihow.com/ouvrir-l'Invite-de-commandes-sous-Windows
pour plus d'info ou chercher "cmd.exe windows 8" dans google.

Sinon effectivement le fait de double-cliquer directement sur psql.exe ou les autres commandes n'est pas jouable, car ça les lance sans paramètre, ce qui n'est pas le mode d'usage de ces commandes.

Hors ligne

#13 21/02/2017 15:33:55

Re : psql/problème mot de passe

Un grand merci à tous pour vos conseils et vos indications!
Ca marche ...et en plus je crois avoir mieux compris certains points concernant les outils d'administration!

(J'ai encore un petit souci mais c'est par rapport au fichier d'init et je lancerai un nouveau post prochainement.)

Bien cordialement,
Jean-Louis

Hors ligne

Pied de page des forums