我正在尝试使用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
的电子邮件程序,或者我应该做其他事情。
答案 0 :(得分:2)
该错误表示尝试发送数据库邮件的用户没有执行sp_send_dbmail所需的权限。为了能够使用数据库邮件发送邮件,用户必须是msdb数据库中“DatabaseMailUserRole”角色的成员。以下是将用户添加到此角色的方法
USE msdb
EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole',
@membername = 'YourDomain\YourDomainUser';
GO
答案 1 :(得分:1)
我认为您还需要在msdb数据库中注册您的用户。 这Link可能会对您有所帮助。