通过SQL Server发送电子邮件会导致错误

时间:2014-01-29 09:27:26

标签: sql sql-server

我正在尝试通过SQL Server Management Studio发送电子邮件,但它会返回错误。

EXEC msdb.dbo.sp_send_dbmail
     @profile_name = 'Adventure Works Administrator',
     @recipients = 'example@example.com',
     @body = 'The stored procedure finished successfully.',
     @subject = 'Automated Success Message'

错误是:

  

对象'sp_send_dbmail',数据库'msdb',架构'dbo'上的EXECUTE权限被拒绝。

我上网冲浪解决了这个问题,但没有成功。需要你的帮助。感谢

1 个答案:

答案 0 :(得分:1)

可能您的用户对您要定位的SQL实例没有正确的权限,如评论中所示:

grant execute on dbo.sp_send_dbmail to <usernamehere>;

请参阅此问题的Troubleshooting article

EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole'
    ,@membername = '<user or role name>';
GO

此外,您可能尚未配置此功能,请参阅documentation

  

使用前,必须使用数据库邮件启用数据库邮件   配置向导,或sp_configure。

this one用于配置:

USE master
Go

EXEC sp_configure 'show advanced options', 1
Go

RECONFIGURE
Go

EXEC sp_configure 'Database Mail XPs', 1
Go

RECONFIGURE
Go

EXEC sp_configure 'show advanced options', 0
Go

RECONFIGURE
Go