Procédure stockée et Autorisations - la commande d'EXÉCUTION Est assez?

J'ai un Serveur SQL server 2008 de la base de données où tous les accès aux tables sous-jacentes est fait par le biais de procédures stockées. Certaines procédures stockées simplement SÉLECTIONNER des enregistrements dans les tables, tandis que d'autres UPDATE, INSERT et DELETE.

Si une procédure stockée MISES à jour d'un tableau est l'utilisateur qui exécute la procédure stockée également besoin de mettre à JOUR les autorisations pour les tables concernées ou est le fait qu'ils ont des autorisations d'EXÉCUTION de la procédure stockée assez?

Fondamentalement, je me demandais si en donnant à l'utilisateur les autorisations d'EXÉCUTION de la procédure stockée est suffisant ou dois-je leur donner SELECT, UPDATE, DELETE et INSERT, d'autorisations pour les tables dans l'ordre pour les procédures stockées de travail. Merci.

[MODIFIER] Dans la plupart de mes procédures stockées, il ne semble en effet que l'EXÉCUTION est assez. Cependant, je n'ai trouver que des procédures stockées où "Exécuter sp_Executesql" a été utilisé pour EXÉCUTER n'était pas assez. Les tables impliquées nécessaire d'avoir les autorisations pour les actions effectuées au sein de "sp_Executesql".

  • J'ai peur que lors de l'utilisation de requêtes SQL, vous devez accorder des autorisations sur l'objet sous-jacent. J'ai mis à jour la réponse à refléter.
  • Vous êtes correct. J'ai trouvé que j'avais besoin pour permettre datareader l'accès aux tables pour les utilisateurs. Heureusement, ce n'était pas un problème pour ma situation étant donné que tous les utilisateurs ont été autorisés à afficher toutes les données.
  • Dans une autre réponse, @RemusRusanu des liens vers une alternative: 1) la création d'un certificat; 2) Créer un utilisateur associé à ce certificat; 3) Accorder à l'utilisateur des droits appropriés [aux ressources protégées]; et 4) de Signer la procédure stockée avec le certificat, chaque fois que vous modifiez la procédure stockée (stackoverflow.com/a/4081604/6894566 de les relier à d' : sommarskog.se/grantperm.html#Certificats ). Signature ajoute le certificat de droits d'utilisateur pour l'utilisateur actuel jeton, qui SQL Server conserve lors de l'appel de procédures du système et le SQL dynamique invoquée par EXEC() ou sp_executesql. Si la procédure stockée réussit.
InformationsquelleAutor webworm | 2010-09-28