首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行msdb.dbo.sp_send_dbmail失败

执行msdb.dbo.sp_send_dbmail失败
EN

Stack Overflow用户
提问于 2012-09-14 12:58:04
回答 6查看 65.9K关注 0票数 22

我得到了这个错误:

Msg 229,14级,状态5,过程sp_send_dbmail,第1行 对象'sp_send_dbmail‘、数据库'msdb’、架构'dbo‘上的EXECUTE权限被拒绝。

守则的有关部分:

代码语言:javascript
复制
/****** Object:  StoredProcedure [dbo].[dbo.STATUSCHANGE_EMAILALERT] ******/

EXEC msdb.dbo.sp_send_dbmail
  @recipients = 'Test@gmail.com', -- Group Email
  @subject = 'Employee Status Update',
  @profile_name ='Test@gmail.com', -- Setup the profile name group
  @body = @body,
  @body_format = 'HTML';
EN

回答 6

Stack Overflow用户

发布于 2016-12-16 01:41:41

找到了对我有用的好的,简单的修复,这里

如果您的SQL应用程序无法使用数据库邮件发送电子邮件(我假设您已经设置了DBMail帐户和配置文件设置),那么有两件事需要设置:

  1. > MANAGEMENT > DATABASE >右击并选择配置…>选择“管理配置文件安全性”>“SQL管理”
  2. 检查公共选项
  3. 单击默认配置文件并将其设置为“是”。
  4. STUDIO >数据库>系统数据库>右键单击MSDB并选择新查询>然后输入>授予sp_send_dbmail上的公共执行,然后单击OK
票数 21
EN

Stack Overflow用户

发布于 2012-09-14 13:02:17

要发送数据库邮件,用户必须是msdb数据库中的用户和msdb数据库中DatabaseMailUserRole数据库角色的成员。若要向此角色添加msdb用户或组,请使用或为需要发送数据库邮件的用户或角色执行以下语句:

代码语言:javascript
复制
EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole'
    ,@membername = '<user or role name>';
GO
票数 17
EN

Stack Overflow用户

发布于 2012-09-14 13:00:27

授予执行存储过程的用户对sp_send_dbmail的执行权限,或将它们添加到角色msdb.DatabaseMailUser中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12425096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档