PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 04/03/2015 20:09:46

lecbee
Membre

ALTER ROLE ne trouve mon rôle

Bonjour,

Je travaille sur PostgreSQL 8.4 (CentOS 6), j'ai une base de données avec notamment un rôle LOGIN configuré avec un mot de passe. Ce rôle est utilisé pour l'accès d'une application PHP. La connexion de l'appli à la base fonctionne sans problème.

Aujourd'hui je voudrais changer le mot de passe de ce rôle, mais psql me dit qu'il ne le trouve pas, alors que la commande \du le liste bien.


Je me connecte à mon serveur :
# psql -U administrator -W --dbname MYDB
avec "administrator" qui a les privilèges CREATEROLE et CREATEBASE.


Je tape la commande :
MYDB=> ALTER ROLE "MYAPP_CONNECT" WITH PASSWORD 'XXXXXXXX';
ERREUR:  le rôle « myapp_connect » n'existe pas


Pourtant la commande \du fais bien apparaitre le rôle « myapp_connect » :
MYDB=> \du
         Nom du rôle            |            Attributs             |                Membre de
--------------------------+--------------------------+---------------------------------
MYAPP_CONNECT            |                                     | {MYAPP_CONNECT_ROLE}
MYAPP_CONNECT_ROLE    | Ne peut pas se connecter | {}



Voilà, c'est un bug ou bien il y a quelques chose que je n'ai pas compris ?
Merci d'avoir lu mon problème ^^

Hors ligne

#2 04/03/2015 20:28:47

rjuju
Administrateur

Re : ALTER ROLE ne trouve mon rôle

D'après le message, il semble que vous n'ayez pas saisi les guillemets doubles autour de « MYAPP_CONNECT ».

Avez-vous exécuté


ALTER ROLE "MYAPP_CONNECT" WITH PASSWORD 'XXXXXXXX';

ou

ALTER ROLE MYAPP_CONNECT WITH PASSWORD 'XXXXXXXX';


?


Le premier devrait marcher, et le second vous donner l'erreur que vous avez eu.

En ligne

#3 04/03/2015 20:37:20

lecbee
Membre

Re : ALTER ROLE ne trouve mon rôle

Merci pour votre réponse rapide !
Malheureusement j'ai bien mis les double-quotes dès le départ. Et en fait si j'enlève les double-quotes autour du nom du rôle (ce qui est valide me semble t-il) j'ai le même message d'erreur.

Hors ligne

#4 05/03/2015 12:32:03

ruizsebastien
Membre

Re : ALTER ROLE ne trouve mon rôle

Bonjour,

Avez-vous essayé avec :
alter user "MYAPP_CONNECT" with password 'XXXXXXX';

Cordialement,

Hors ligne

#5 05/03/2015 12:36:09

ruizsebastien
Membre

Re : ALTER ROLE ne trouve mon rôle

essayez aussi :
alter user \"MYAPP_CONNECT\" with password 'XXXXXXX';

Hors ligne

#6 05/03/2015 12:41:26

ruizsebastien
Membre

Re : ALTER ROLE ne trouve mon rôle

de plus pouvez vous nous donner l'ordre sql de création du rôle (l'ordre exacte) ?

Hors ligne

#7 05/03/2015 16:57:54

lecbee
Membre

Re : ALTER ROLE ne trouve mon rôle

ruizsebastien a écrit :

Avez-vous essayé avec :
alter user "MYAPP_CONNECT" with password 'XXXXXXX';

Ah comme ça ça marche !! Merci !
Il faut que je mette les commandes en minuscules (alter role), le rôle en majuscule et entre double-quotes. Toute autre forme d'écriture ne fonctionne pas. C'est normal ?


ruizsebastien a écrit :

de plus pouvez vous nous donner l'ordre sql de création du rôle (l'ordre exacte) ?

Ce n'est pas moi qui est créé ce rôle donc je ne sais pas.

Dernière modification par lecbee (05/03/2015 17:39:29)

Hors ligne

#8 05/03/2015 17:37:28

ruizsebastien
Membre

Re : ALTER ROLE ne trouve mon rôle

en fait tout dépend de la commande de création. Donc...

Hors ligne

#9 05/03/2015 17:41:24

lecbee
Membre

Re : ALTER ROLE ne trouve mon rôle

ruizsebastien a écrit :

en fait tout dépend de la commande de création. Donc...

Ça m'étonne quand même beaucoup que alter role "MYAPP_CONNECT" with password 'XXXXXXX'; fonctionne mais pas ALTER ROLE "MYAPP_CONNECT" WITH PASSWORD 'XXXXXXX';

Hors ligne

#10 05/03/2015 17:47:19

ruizsebastien
Membre

Re : ALTER ROLE ne trouve mon rôle

Il faut voir aussi que vous êtes en version 8.4. La syntaxe de psql est peut être très pointilleuse dans cette version.
Il serait peut être temps de migrer vers une version récente (surtout que la 8.4 n'est plus supportée depuis juillet 2014°.

Hors ligne

#11 05/03/2015 19:32:49

lecbee
Membre

Re : ALTER ROLE ne trouve mon rôle

ruizsebastien a écrit :

Il faut voir aussi que vous êtes en version 8.4. La syntaxe de psql est peut être très pointilleuse dans cette version.

Oui c'est peut-être ça.


ruizsebastien a écrit :

Il serait peut être temps de migrer vers une version récente (surtout que la 8.4 n'est plus supportée depuis juillet 2014°.

C'est vrai mais c'est surtout qu'on devrait re-valider une partie de nos applications en migrant vers plus récent.
Et comme la 8.4 est fonctionnelle pour nous et supportée par Red Hat encore plusieurs années, c'est pas vraiment à l'ordre du jour chez nous ^^

Dernière modification par lecbee (05/03/2015 22:04:58)

Hors ligne

#12 05/03/2015 20:26:17

gleu
Administrateur

Re : ALTER ROLE ne trouve mon rôle

Non, la 8.4 n'est pas en cause. L'ordre SQL s'écrit en majuscule ou en minuscule, peu importe. La casse du rôle est important par contre.

Hors ligne

#13 05/03/2015 22:02:14

lecbee
Membre

Re : ALTER ROLE ne trouve mon rôle

gleu a écrit :

L'ordre SQL s'écrit en majuscule ou en minuscule, peu importe.

Absolument, sauf que l'expérience que j'ai eu ici dans ce cas précis montre le contraire. Seul un "alter role" en minuscule fonctionne, mais pas en majuscule. C'est donc pour ça que je me demandais si ce n'était pas un bug car ce n'est pas normal.

Hors ligne

#14 05/03/2015 23:05:10

gleu
Administrateur

Re : ALTER ROLE ne trouve mon rôle

Ça fonctionne parfaitement en 8.4 :

$ psql
psql (8.4.22)
Type "help" for help.

postgres=# select version();
                                                      version                                                      
-------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.4.22 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1), 64-bit
(1 row)

postgres=# CREATE USER toto;
CREATE ROLE
postgres=# alter user toto password 'titi';
ALTER ROLE
postgres=# ALTER USER toto PASSWORD 'titi';
ALTER ROLE
postgres=# CREATE USER "TotOTo";
CREATE ROLE
postgres=# alter user "TotOTo" password 'titi';
ALTER ROLE
postgres=# ALTER USER "TotOTo" PASSWORD 'titi';
ALTER ROLE

Il y a forcément autre chose qui ne colle pas.

Hors ligne

#15 05/03/2015 23:31:54

lecbee
Membre

Re : ALTER ROLE ne trouve mon rôle

gleu a écrit :

Il y a forcément autre chose qui ne colle pas.

En effet, je viens d'essayer depuis chez moi (machine Fedora 21) et là ça marche très bien.
Par contre au boulot je suis sur Windows 7 avec PuTTY. J’essaierai demain au boulot depuis un autre PC.

Hors ligne

#16 06/03/2015 11:15:11

lecbee
Membre

Re : ALTER ROLE ne trouve mon rôle

Bon maintenant ça marche aussi... j'ai du me gourer quelque part avec les majuscules du mon utilisateur "MYAPP_CONNECT", je ne vois que ça...
Merci pour votre aide.

Dernière modification par lecbee (06/03/2015 11:15:22)

Hors ligne

Pied de page des forums