L'autorisation EXECUTE a été refusée sur l'objet 'aspnet_CheckSchemaVersion', base de données 'XXX'
- Je utiliser asp.net 4 c# et du framework entity 4 avec MS SQL 2008. Je suis en train de configurer mon application web localement à l'aide de IIS 7.
Pour mon site, j'ai de l'utilisateur Asp fournisseur d'appartenances, qui a installé des tables différentes et sprocs dans ma db (aspnet_).
Qui exécute le script, nous recevons ce message d'erreur:
The EXECUTE permission was denied on the object 'aspnet_CheckSchemaVersion', database 'XXX', schema 'dbo'. at System.Data.SqlClient.SqlConnection.OnError
- Comment puis-je résoudre le problème?
Merci de me fournir des instructions claires. Merci pour votre hep.
source d'informationauteur GibboK
Vous devez vous connecter pour publier un commentaire.
Il devrait y avoir quelques db rôles liés à l'adhésion des tables, par exemple, aspnet_profile_fullaccess. Assurez-vous que le compte que vous utilisez est un membre du rôle approprié.
Vous ne devez PAS attribuer à l'utilisateur de vous connecter à la DB comme dbowner privilège. Le compte doit avoir les droits il doit & rien de plus. Si vous accordez dbo & quelqu'un venait à exploiter une faille dans votre site web, ils ont plein accès non contrôlé à l'ensemble de votre db à ce qu'ils voulaient - supprimer des tables, de modifier des données à volonté.
Le problème est que l'ID Utilisateur de l'application est de vous connecter avec n'a pas suffisamment de privilèges dans la base de données. Il doit être le propriétaire de base de données ou d'accorder des autorisations sur tous les aspnet_ procédures stockées.
Veuillez donc vérifier les autorisations dans SQL server 2008 pour cet utilisateur particulier. et si possible, à faire ce qu'un utilisateur de dbowner.
Espère que cela aide...
Edit : je voulais vous le faire comme dbowner juste pour vérifier qu'il existe des problèmes d'autorisation,une fois que vous êtes certain que sur le problème, vous pouvez affecter des autorisations à l'utilisateur. par conséquent connaître la cause exacte et la solution exacte.
Je ne pense pas que vous devriez faire de l'utilisateur db_owner. J'ai eu le même problème, et c'était suffisant pour grand les 4 rôles avec BasicAccess à mon utilisateur + pour lui donner l'autorisation d'EXÉCUTION sur tous stockés proc:
GRANT EXECUTE [theUserName];
Je sais que ce n'est pas l'idéal. On devrait accorder des autorisations d'EXÉCUTION seulement sur le traitement des stockée, mais si vous avez besoin d'une solution rapide jusqu'à ce que vous trouver la SP de votre utilisateur doit être capable d'exécuter, cela devrait fonctionner.