Tengo una instancia de SQL Server 2012 que se ejecuta con una cuenta de servicio administrada. He configurado el correo de la base de datos con una cuenta y estoy tratando de enviar un correo electrónico de prueba, pero recibo algunos errores en los registros de eventos del servidor:
Instancia del motor de base de datos = MYINSTANCE; PID de correo = 2132; Mensaje de error: Error en la actualización de la base de datos. Motivo: se denegó el permiso EXECUTE en el objeto 'sysmail_logmailevent_sp', la base de datos 'msdb', el esquema 'dbo'.
Instancia del motor de base de datos = MYINSTANCE; PID de correo = 2212; Tipo de excepción: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException Mensaje: La lectura en la base de datos falló. Motivo: se denegó el permiso EXECUTE en el objeto 'sp_readrequest', la base de datos 'msdb', el esquema 'dbo'. Datos: System.Collections.ListDictionaryInternal TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand (System.Data.SqlClient.SqlCommand) HelpLink: NULL Fuente: DatabaseMailEngine
Si hago que la cuenta que ejecuta el proceso de SQL Server sea un administrador de sistemas, este error desaparece y los correos se envían correctamente. Sin embargo, toda la investigación que he realizado sugiere que dar a esta cuenta el DatabaseMailUserRole
papel en la msdb
base de datos debería ser suficiente. He hecho esto y sigo recibiendo los mismos errores.
Eché un vistazo al BOL pero no pude encontrar nada.
fuente
Respuestas:
La cuenta de servicio del Agente SQL Server requiere permisos de administrador del sistema en la instancia.
Microsoft KB
fuente