J'ai une instance SQL Server 2012 exécutée sous un compte de service géré. J'ai configuré la messagerie de base de données avec un seul compte et j'essaie d'envoyer un e-mail de test, mais je reçois des erreurs dans les journaux d'événements du serveur:
Instance du moteur de base de données = MYINSTANCE; Mail PID = 2132; Message d'erreur: la mise à jour de la base de données a échoué. Motif: l'autorisation EXECUTE a été refusée sur l'objet 'sysmail_logmailevent_sp', la base de données 'msdb', le schéma 'dbo'.
Instance du moteur de base de données = MYINSTANCE; Mail PID = 2212; Type d'exception: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException Message: La lecture sur la base de données a échoué. Motif: l'autorisation EXECUTE a été refusée sur l'objet 'sp_readrequest', base de données 'msdb', schéma 'dbo'. Données: System.Collections.ListDictionaryInternal TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand (System.Data.SqlClient.SqlCommand) HelpLink: NULL Source: DatabaseMailEngine
Si je fais du compte exécutant le processus SQL Server un administrateur système, cette erreur disparaît et les e-mails sont envoyés avec succès. Cependant, toutes les recherches que j'ai faites suggèrent que donner à ce compte le DatabaseMailUserRole
rôle dans la msdb
base de données devrait être suffisant. J'ai fait cela et je reçois toujours les mêmes erreurs.
J'ai jeté un coup d'œil dans le BOL mais je n'ai rien trouvé.
Réponses:
Le compte de service de l'Agent SQL Server requiert des autorisations sysadmin sur l'instance.
Microsoft KB
la source