Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#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