Eu tenho uma instância do SQL Server 2012 em execução em uma conta de serviço gerenciada. Configurei o email do banco de dados com uma conta e estou tentando enviar um email de teste, mas estou recebendo alguns erros nos logs de eventos do servidor:
Database Engine Instance=MYINSTANCE;Mail PID=2132;Error Message:A atualização do banco de dados falhou. Motivo: a permissão EXECUTE foi negada no objeto 'sysmail_logmailevent_sp', banco de dados 'msdb', esquema 'dbo'.
Instância do Mecanismo de Banco de Dados=MYINSTANCE;Mail PID=2212; Tipo de exceção: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException Mensagem: Falha na leitura do banco de dados. Motivo: a permissão EXECUTE foi negada no objeto 'sp_readrequest', banco de dados 'msdb', esquema 'dbo'. Dados: System.Collections.ListDictionaryInternal TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand(System.Data.SqlClient.SqlCommand) HelpLink: NULL Source: DatabaseMailEngine
Se eu tornar a conta que executa o processo do SQL Server um administrador de sistema, esse erro desaparece e os e-mails são enviados com sucesso. No entanto, todas as pesquisas que fiz sugerem que atribuir a essa conta a DatabaseMailUserRole
função no banco de msdb
dados deve ser suficiente. Eu fiz isso e ainda recebo os mesmos erros.
Dei uma olhada no BOL mas não encontrei nada.
A conta de serviço do SQL Server Agent requer permissões de administrador do sistema na instância.
KB da Microsoft