De quelles autorisations le compte de service a-t-il besoin pour utiliser la messagerie de base de données?

9

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 DatabaseMailUserRolerôle dans la msdbbase 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é.

Mansfield
la source
Le serveur SQL et l'agent SQL s'exécutent-ils sous le même compte?
Kin Shah
@kin Non, des comptes distincts (les deux comptes de services gérés).
Mansfield
pouvez-vous essayer d'exécuter l'Agent SQL avec le même compte de service que le serveur SQL - juste pour l'exclure et vérifier si cela fonctionne?
Kin Shah
@Kin That a l'autorisation sysadmin, donc cela fonctionnera. J'ai donné à mon compte de service principal l'autorisation sysadmin pour l'instant et tout fonctionne - je suis juste curieux de savoir si c'est trop.
Mansfield

Réponses:

4

Le compte de service de l'Agent SQL Server requiert des autorisations sysadmin sur l'instance.

Microsoft KB

Nabil Becker
la source