[SQL Server 2005] Execute, droit refusée

Execute, droit refusée [SQL Server 2005] - SQL/NoSQL - Programmation

Marsh Posté le 27-03-2009 à 16:51:54    

Bonjour,
 
j'ai un petit problème bizarre :
 
Voici ce que j'ai pu tirer du MSDN :
 

Citation :


Aucune autorisation n'est requise pour exécuter l'instruction EXECUTE. Cependant, des autorisations sont requises sur les sécurisables référencés dans la chaîne EXECUTE. Par exemple, si la chaîne contient une instruction INSERT, l'appelant de l'instruction EXECUTE doit posséder l'autorisation INSERT sur la table cible. Les autorisations sont vérifiées au moment où l'instruction EXECUTE est rencontrée, même si celle-ci est incluse dans un module.
 
Les autorisations EXECUTE pour un module sont accordées par défaut au propriétaire du module, qui peut les transmettre à d'autres utilisateurs. Lorsqu'un module qui exécute une chaîne est lancé, les autorisationssont vérifiées dans le contexte non pas de l'utilisateur qui a créé le module, mais de celui qui exécute le module. Cependant, si le même utilisateur est propriétaire du module appelant et du module appelé, la vérification de l'autorisation EXECUTE n'a pas lieu pour le second module. Pour plus d'informations, consultez Chaînes de propriétés.


Tiré d'ici : http://technet.microsoft.com/fr-fr/l...2(SQL.90).aspx
 
J"ai créé un utilisateur test_reader qui possède le rôle data_reader. Lorsque j'essaie d'éxécuter une procédure stockée, j'ai le message suivant :

Citation :


L'autorisation EXECUTE a été refusée sur l'objet 'SP_LstThemes', base de données 'DemandesFormation', schéma 'dbo'.


 
 
Si j'exécute le contenu de la procédure stockée, tout fonctionne bien.
 

Code :
  1. SET NOCOUNT ON;
  2. SELECT * FROM Themes WHERE actif = 1


 
Il y a une solution de contournement en spécifiant les éléments sécurisables pour chaque procédure mais c'est très lourd.
Quelqu'un aurait une explication ?
 
Merci d'avance !

Reply

Marsh Posté le 27-03-2009 à 16:51:54   

Reply

Marsh Posté le 30-03-2009 à 12:02:55    

J'ai trouvé la réponse tout seul :)
 
http://www.sqldbatips.com/showarticle.asp?ID=8
 
Merci à tous :o
 
haha

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed