Les autorisations lors de l'utilisation de l'option “Exécuter sp_Executesql”

J'ai une base de données dont l'accès est contrôlé par des procédures stockées. Le DBA voudrais éviter de donner aux utilisateurs directs accès en lecture/écriture aux tables sous-jacentes, ce que je peux comprendre. Ainsi, toutes les mise à jour et la sélection des données se fait via des procédures stockées. Fondamentalement, il a créé l'un rôle qui a les autorisations d'EXÉCUTION de toutes les procédures stockées dans la base de données et les utilisateurs de ce rôle.

Le problème est que l'une des procédures stockées de manière dynamique construit une Requête SQl et l'exécute via "Exécuter sp_Executesql". Sans entrer dans les détails de la requête est construite dynamiquement, car il modifie considérablement en fonction de nombreux paramètres d'entrée utilisateur. La procédure stockée en question est seulement une instruction SELECT sql cependant je trouve que juste de donner l'autorisation d'EXÉCUTION de la procédure stockée n'est pas assez. Les tables sous-jacentes référencé dans la procédure stockée qui rendent l'utilisation de l'option "Exécuter sp_Executesql" doivent avoir fait l'objet "datareader" l'accès ou de l'autre de la procédure stockée échoue.

Des idées sur comment remédier à cela? Je voulais vraiment restreindre l'accès aux tables à seulement procédures stockées, mais j'ai besoin de trouver un moyen de contourner les procédures stockées qui rendent l'utilisation de l'option "Exécuter sp_Executesq"l'. Merci.

Vous pouvez obtenir de meilleurs avdice serverfault. Mes conseils: - Parlez-en à l'administrateur de la base et expliquer la situation. Travailler avec eux pour obtenir les autorisations de droit.

OriginalL'auteur webworm | 2010-09-28