sql - 无法执行 msdb.dbo.sp_send_dbmail

标签 sql sql-server

我收到此错误:

Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1
The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.

代码的相关部分:

/****** 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';

最佳答案

找到了对我有用的又好又简单的修复here :

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

  1. SQL MANAGEMENT STUDIO > 管理 > 数据库邮件 > 右键单击​​并 选择配置... > 选择管理配置文件安全 > SQL 管理
  2. 选中 PUBLIC 选项
  3. 点击“默认配置文件”并将其设置为"is"
  4. STUDIO > 数据库 > 系统数据库 > 右键单击​​ MSDB,然后 选择 NEW QUERY > 然后输入 > grantexecute on sp_send_dbmail to 公开并单击“确定”

关于sql - 无法执行 msdb.dbo.sp_send_dbmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12425096/

相关文章:

sql - oracle 对象和集合

sql-server - 关于数据库的问题

sql-server - 在 SQL Server Management Studio 中创建表

mysql - SUM(MAX( ) + MAX( )) 怎么做?

sql - 向数据库中的所有表添加位掩码有用吗?

SQL Server 2008创建表语法错误

sql - 如何处理 Sql server CREATE TABLE 数据库名称中的空格?

mysql - 将临时表中的内容插入到更新查询中

sql - sql server中这些关键字的用途是什么(UPDLOCK、ROWLOCK READPAST)

sql-server - 仅选择 "customer"的所有行都具有相同状态的位置?