Si vous avez créé un rôle personnalisé dans SqlServer que j'ai ajouté aux rôles db__denydatareader et db__denydatawriter. Je pense est passé par la base de données et accordé l'autorisation exec à toutes les procédures stockées neccersary.L'autorisation SELECT a été refusée sur l'objet
Tout fonctionne bien, appelant ces sps fonctionnera bien. La seule exception est une procédure stockée qui exécute SQL dynamique en utilisant sp_executesql. Cela ne dit
The SELECT permission was denied on the object 'listing_counter', database 'Cannla', schema 'dbo'.
Est-il possible d'accorder l'autorisation de rôle pour exécuter cette requête sans lui donner accès à sélectionner les tables sous-jacentes?
Je suppose que ce que je veux faire est d'accorder exec sur sys.sp_executesql mais seulement dans un certain cas.
c'est très cool et on dirait que ça va faire l'affaire. merci – mjallday
C'était ma première suggestion après avoir lu la question. –
Merci! Sur Internet, je lisais sur la signature des certificats et d'autres surpuissance. Tout ce dont j'avais besoin était d'ajouter un login avec juste le rôle de base de données db_datareader. Maintenant, je peux avoir ma connexion asp.net exécuter des sprocs qui utilisent sp_executesql en ajoutant "WITH EXECUTE AS 'DataReaderOnlyUser'" à la définition du sproc. – MikeTeeVee