sp_send_dbmail权限问题

Posted WesChan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sp_send_dbmail权限问题相关的知识,希望对你有一定的参考价值。

这段时间处理SSIS服务器迁移的事情,在处理一个发送邮件的任务的时候,突然出现如下错误,

技术分享
 
 拒绝了对对象 ‘sp_send_dbmail‘ (数据库 ‘msdb‘,架构 ‘dbo‘)的 EXECUTE 权限
 
原来如此,难怪在SQL上面是无问题的.因为我指定了某一数据库用户.而该用户不具备MSDB库的 DatabaseMailUser 数据库角色权限. 查下资料.
 
解决办法有两种. 
1.在图形化界面下把 你的数据库用户映射到msdb数据库的 DatabaseMailUser 的角色成员.
技术分享
2.直接执行SQL语句 新建查询 目标库 MSDB 执行如下语句:
 
EXEC msdb.dbo.sp_addrolemember @rolename = ‘DatabaseMailUserRole‘
    ,@membername = ‘<user or role name>‘;
GO



网络资源来源:http://blog.qq.com/qzone/32697/1334912501.htm


技术分享

还有在设置权限后依然未能成功执行,提示‘profile名称错误‘,即未在SQL SERVER中设置MAIL服务器。
设置MAIL服务器可以参照:http://www.dotblogs.com.tw/terrychuang/archive/2012/01/12/65538.aspx


技术分享


技术分享
需要将以上“专用配置文件”中的“访问”选项勾选,才可正常发送邮件。
























以上是关于sp_send_dbmail权限问题的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 2008 中使用 sp_send_dbmail 传递的邮件很少

msdb.dbo.sp_send_dbmail 不在存储过程中执行

SQL Server:sp_send_dbmail 在调用存储过程时从不将电子邮件排队

sp_send_dbmail 在正文中嵌入 mhtml 文件

使用 SQL Server sp_send_dbmail 从 java 发送电子邮件

SQL 发送邮件msdb.dbo.sp_send_dbmail