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 01/09/2011 21:01:25

afrofip
Membre

Droits d'acces à une sequence lors de l'insertion d'une ligne

Bonjour a tous.
J'ai un problème avec l'insertion d'un ligne dans ma base de donnée.

CONTEXTE:
J'ai une interface Java qui communique avec une base de donnée "HOTEL" dans laquelle se trouve une table "client". En plus de l'utilisateur "postgres", j'ai créer un rôle "surveillant" a qui j'ai donné tout les droits sur la base de donnée avec GRANT all ON "HOTEL" TO surveillant. Ensuite je lui ai donné tout les droits individuellement sur la table "client", et sur toutes les autres tables. La table "client" a un identifiant nommé "idchambre" de type SERIAL.

PROBLEME:
Lorsque j'essaye d'inserer une ligne depuis le rôle "surveillant", j'ai une erreur de ce type "droits d'acces refusé pour la sequence chambre_idchambre_seq". Et je ne sais vraiment pas pourquoi!

Quelqu'un aurait-il une idée du problème?

Hors ligne

#2 01/09/2011 21:29:51

gleu
Administrateur

Re : Droits d'acces à une sequence lors de l'insertion d'une ligne

La table client a une colonne de type serial. serial est un pseudo type que PostgreSQL comprend comme étant un type integer avec une valeur par défaut dépendant de la valeur d'une séquence. Pour pouvoir insérer en utilisant cette valeur par défaut, il faut donner les droits sur la séquence.


Guillaume.

Hors ligne

#3 02/09/2011 20:26:19

afrofip
Membre

Re : Droits d'acces à une sequence lors de l'insertion d'une ligne

Bonjour @gleu.
Merci pour cet éclairage. Mais l'ennui c'est que lorsque j'essaie d'attribuer des droits à la sequence "chambre_idchambre_seq", postgreSQL me dit qu'elle n'existe pas... Pour pouvoir faire ce que vous dites, est-ce qu'il faut impérativement que je crée ma propre séquence pour gerer l'identifiant de la table "client"?

Hors ligne

#4 02/09/2011 21:49:18

gleu
Administrateur

Re : Droits d'acces à une sequence lors de l'insertion d'une ligne

Si le nom de la séquence comporte des majuscules, le nom complet doit être indiqué entre double guillemets.  Si il y a un schéma, il faut aussi l'indiquer. Si vous n'y arrivez toujours pas, merci de préciser le DDL de la table.


Guillaume.

Hors ligne

#5 13/09/2011 20:41:14

afrofip
Membre

Re : Droits d'acces à une sequence lors de l'insertion d'une ligne

Bonjour
Desolé, j'ai oublié de faire le compte rendu.
Le problème a été resolu lorsque, après avoir attribué les droits à "surveillant", je suis allé dans pgAdminIII au niveau de la dite sequence pour affecter manuellement les droits sur elle à "surveillant"
Merci

Hors ligne

#6 13/09/2011 20:58:32

gleu
Administrateur

Re : Droits d'acces à une sequence lors de l'insertion d'une ligne

Yep, c'est ma première réponse : il faut donner les droits à la séquence.


Guillaume.

Hors ligne

Pied de page des forums