Bonjour,
j'ai un petit problème bizarre :
Voici ce que j'ai pu tirer du MSDN :
Tiré d'ici : http://technet.microsoft.com/fr-fr/l...2(SQL.90).aspxAucune 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.
J"ai créé une connexion test_reader qui possède le droit data_reader. Lorsque j'essaie d'éxécuter une procédure stockée, j'ai le message suivant :
Si j'exécute le contenu de la procédure stockée, tout fonctionne bien.L'autorisation EXECUTE a été refusée sur l'objet 'SP_LstThemes', base de données 'DemandesFormation', schéma 'dbo'.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SET NOCOUNT ON; SELECT * From Themes WHERE actif = 1
Quelqu'un aurait une explication ?
Merci d'avance !
Partager