OVH Cloud OVH Cloud

Problème de droits.

3 réponses
Avatar
Olivier Besson
Bonjour,
J'ai un problème de gestion des droits.
Je crée tout ma base en tant que sa(dbo).
Je crée une sp qui fait des select, update, etc ... en tant que sa(dbo).
Je crée un nouvel utilisateur Essai dans le role public.
Je lui donne le droit d'exec sur ma sp.
Et j'ai l'impression que la sp s'execute avec les droits de Essai et non de
sa(dbo).
D'après ce que j'ai compris de la la doc ma façon de faire devrait marcher,
pouvez vous m'aider SVP ???
(En gros je veux que certaines connexion ne puissent que executer des
procedure stockées)
Merci d'avance.
--

Olivier Besson
Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
(Je ne lis pas mes mails frequement)
To write me, replace <xx> part of my address by <com> (i don't read my mails
very frequently).

3 réponses

Avatar
Med bouchenafa [MVP]
sp_helprotect 'NomProcédure' te donnera le nom du propriétaire de la
procédure et de ceux qui peuvent l'exécuter

--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"Olivier Besson" a écrit dans le message news:

Bonjour,
J'ai un problème de gestion des droits.
Je crée tout ma base en tant que sa(dbo).
Je crée une sp qui fait des select, update, etc ... en tant que sa(dbo).
Je crée un nouvel utilisateur Essai dans le role public.
Je lui donne le droit d'exec sur ma sp.
Et j'ai l'impression que la sp s'execute avec les droits de Essai et non


de
sa(dbo).
D'après ce que j'ai compris de la la doc ma façon de faire devrait


marcher,
pouvez vous m'aider SVP ???
(En gros je veux que certaines connexion ne puissent que executer des
procedure stockées)
Merci d'avance.
--

Olivier Besson
Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
(Je ne lis pas mes mails frequement)
To write me, replace <xx> part of my address by <com> (i don't read my


mails
very frequently).






Avatar
Olivier Besson
Bonjour,
Merci pour votre réponse, mais est-ce que j'ai raison en supposant qu'une
procédure accède aux tables avec les droits de son créateur ou pas ??

--

Olivier Besson
Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
(Je ne lis pas mes mails frequement)
To write me, replace <xx> part of my address by <com> (i don't read my mails
very frequently).



"Med bouchenafa [MVP]" a écrit dans le message de
news:
sp_helprotect 'NomProcédure' te donnera le nom du propriétaire de la
procédure et de ceux qui peuvent l'exécuter

--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"Olivier Besson" a écrit dans le message news:

> Bonjour,
> J'ai un problème de gestion des droits.
> Je crée tout ma base en tant que sa(dbo).
> Je crée une sp qui fait des select, update, etc ... en tant que sa(dbo).
> Je crée un nouvel utilisateur Essai dans le role public.
> Je lui donne le droit d'exec sur ma sp.
> Et j'ai l'impression que la sp s'execute avec les droits de Essai et non
de
> sa(dbo).
> D'après ce que j'ai compris de la la doc ma façon de faire devrait
marcher,
> pouvez vous m'aider SVP ???
> (En gros je veux que certaines connexion ne puissent que executer des
> procedure stockées)
> Merci d'avance.
> --
>
> Olivier Besson
> Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
> (Je ne lis pas mes mails frequement)
> To write me, replace <xx> part of my address by <com> (i don't read my
mails
> very frequently).
>
>
>
>




Avatar
Med Bouchenafa [MVP]
Une procédure accède aux tables avec le contexte de sécurité de la personne qui exécute la procédure
et non du propriétaire de la procédure.
Sinon cela serait trop simple de violer les données d'une autre table
En fait, le problème est connu sous le nom de "chaîne d'appartenance".
Voir Aide En Ligne
Si tous les objets qui sont dans la procédure appartiennent au propriétaire de la procédure, la
sécurité n'est pas vérifiée et la permission EXECUTE suffit
Si la chaîne d'appartenance est rompue, il faut vérifier objet par objet.
Supposant qu'un utilisateur UserA crée une table tableA
Supposant que cet utilisateur donne le droit SELECT sur cette table à un autre utilisateur UserB
Supposant que ce dernier utilisateur UserB crée une procédure procB et qu'il le droit d'exécution à
tout le monde
Un utilisateur tiers UserC qui voudrait exécuter cette procédure procB se verrait refuser l'accès à
la table tableA

J'espère avoir été clair mais l'Aide En Ligne donne plus de détails

--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"Olivier Besson" a écrit dans le message de news:

Bonjour,
Merci pour votre réponse, mais est-ce que j'ai raison en supposant qu'une
procédure accède aux tables avec les droits de son créateur ou pas ??

--

Olivier Besson
Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
(Je ne lis pas mes mails frequement)
To write me, replace <xx> part of my address by <com> (i don't read my mails
very frequently).



"Med bouchenafa [MVP]" a écrit dans le message de
news:
> sp_helprotect 'NomProcédure' te donnera le nom du propriétaire de la
> procédure et de ceux qui peuvent l'exécuter
>
> --
> Salutations
> Med Bouchenafa
> TETRASET
> 75015 Paris
> "Olivier Besson" a écrit dans le message news:
>
> > Bonjour,
> > J'ai un problème de gestion des droits.
> > Je crée tout ma base en tant que sa(dbo).
> > Je crée une sp qui fait des select, update, etc ... en tant que sa(dbo).
> > Je crée un nouvel utilisateur Essai dans le role public.
> > Je lui donne le droit d'exec sur ma sp.
> > Et j'ai l'impression que la sp s'execute avec les droits de Essai et non
> de
> > sa(dbo).
> > D'après ce que j'ai compris de la la doc ma façon de faire devrait
> marcher,
> > pouvez vous m'aider SVP ???
> > (En gros je veux que certaines connexion ne puissent que executer des
> > procedure stockées)
> > Merci d'avance.
> > --
> >
> > Olivier Besson
> > Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
> > (Je ne lis pas mes mails frequement)
> > To write me, replace <xx> part of my address by <com> (i don't read my
> mails
> > very frequently).
> >
> >
> >
> >
>
>