sp_send_dbmail权限问题
Posted WesChan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sp_send_dbmail权限问题相关的知识,希望对你有一定的参考价值。
这段时间处理SSIS服务器迁移的事情,在处理一个发送邮件的任务的时候,突然出现如下错误,
拒绝了对对象 ‘sp_send_dbmail‘ (数据库 ‘msdb‘,架构 ‘dbo‘)的 EXECUTE 权限
拒绝了对对象 ‘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
,@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 文件