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

#1 30/05/2011 10:04:42

GloReX
Membre

Droit dans les procédures stockées

Bonjour,

Je souhaiterai avoir un éclaircissement sur la gestion des droits dans les procédure/fonction stockée...

J'ai un utilisateur A qui exécute la fonction "superproc()"

J'ai défini le droit suivant sur la fonction.
GRANT EXECUTE ON FUNCTION schema.superproc() TO A;

L'utilisateur A a pour droit sur la table:
GRANT SELECT, INSERT ON TABLE schema.tabledata TO A;

Le serveur inscrit dans le log :
2011-05-29 01:00:57 CEST ERREUR:  droit refusé pour la relation tabledata

Cela semble expliquer qu'il faut j'ajoute le droit DELETE sur la table schema.tabledata à l'utilisateur A...  le problème est que je ne veux pas, pour raison de sécurité, que l'utilisateur A puisse supprimer des données de cette table. Y a-t-il une solution pour contourner ce problème...

Merci

Hors ligne

#2 30/05/2011 10:41:59

gleu
Administrateur

Re : Droit dans les procédures stockées

Si votre procédure stockée utilise DELETE, en effet, il vous manque ce droit pour cet utilisateur. L'alternative est de créer la procédure stockée en tant qu'un utilisateur qui a ce droit et en déclarant la procédure comme SECURITY DEFINER. Dans ce cas, la procédure n'est pas exécuté en tant que l'utilisateur A mais en tant que le propriétaire de la procédure.


Guillaume.

Hors ligne

#3 30/05/2011 14:04:55

GloReX
Membre

Re : Droit dans les procédures stockées

Ok, ça fonctionne très bien.

Petite question:
Le faite de mettre l'option SECURITY DEFINER permet d'exécuter la fonction avec les droits du propriétaire, cependant est-ce que la règle définie par le GRANT EXECUTE est elle shunté ?

Hors ligne

#4 30/05/2011 15:03:02

Marc Cousin
Membre

Re : Droit dans les procédures stockées

Non. Il faut avoir le droit d'exécuter (grant execute) la fonction pour ensuite bénéficier du security definer.


Marc.

Hors ligne

#5 31/05/2011 16:05:30

GloReX
Membre

Re : Droit dans les procédures stockées

Nikel, merci pour la confirmation smile

Hors ligne

Pied de page des forums