J'ai une base de données dans laquelle tous les accès sont contrôlés par des procédures stockées. L'administrateur de base de données aimerait éviter de donner aux utilisateurs un accès direct en lecture/écriture aux tables sous-jacentes, ce que je peux comprendre. Par conséquent, toute mise à jour et sélection de données se fait via des procédures stockées. Fondamentalement, il a créé un rôle qui a des autorisations EXECUTE à toutes les procédures stockées dans la base de données et donné aux utilisateurs ce rôle.Autorisations lors de l'utilisation de "Execute sp_Executesql"
Le problème est que l'une des procédures stockées génère dynamiquement une requête SQl et l'exécute via "Execute sp_Executesql". Sans entrer dans les détails, la requête est construite dynamiquement car elle change de manière significative en fonction de nombreux paramètres d'entrée utilisateur. La procédure stockée en question est seulement une instruction SELECT sql mais je trouve qu'il suffit de donner la permission EXECUTE à la procédure stockée. Les tables sous-jacentes référencées dans la procédure stockée qui utilisent "Execute sp_Executesql" doivent avoir reçu un accès "datareader" sinon la procédure stockée échoue.
Des idées pour corriger la situation? Je voulais vraiment limiter l'accès aux tables aux seules procédures stockées, mais je dois trouver un moyen de contourner les procédures stockées qui utilisent "Execute sp_Executesq" l. Je vous remercie.
Vous pouvez obtenir un meilleur serverfault de avdice. Mon conseil - Parlez à la dba et expliquez la situation. Travaillez avec eux pour obtenir les autorisations appropriées. –