我无法使用sql server smtp发送电子邮件

时间:2013-06-01 07:26:47

标签: .net sql-server stored-procedures sql-server-2012 email-integration

我正在尝试使用sql server 2012发送电子邮件。我尝试按照几个教程但无法成功。

这是我得到的例外。

  

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

我的代码就是这个

 EXEC msdb.dbo.sp_send_dbmail @profile_name='Test2', @recipients='test@Example.com',    
                              @subject='Test message', @body='This is the body'

我的问题是我正在使用另一个名为Akkord的数据库架构。但我只能通过sp_send_dbmail数据库访问msdb。我应该允许使用msdb的电子邮件程序,或者我应该做其他事情。

2 个答案:

答案 0 :(得分:2)

该错误表示尝试发送数据库邮件的用户没有执行sp_send_dbmail所需的权限。为了能够使用数据库邮件发送邮件,用户必须是msdb数据库中“DatabaseMailUserRole”角色的成员。以下是将用户添加到此角色的方法

USE msdb
EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole',
@membername = 'YourDomain\YourDomainUser';
GO

答案 1 :(得分:1)

我认为您还需要在msdb数据库中注册您的用户。 这Link可能会对您有所帮助。