为什么不能从作业中执行的存储过程执行msdb.dbo.send_dbmail?



我有一个计划在服务器上运行的作业。该作业执行一个存储过程。在该存储过程中,我正在执行msdb.dbo.sp_send_dbmail。当我执行以管理员身份登录的存储过程时,它运行良好。当作业运行时,它会失败,并出现以下错误:

Executed as user: ADsql_server. Failed to initialize sqlcmd library with error number -2147467259. [SQLSTATE 42000](Error 22050). The step failed.

我已经尝试在WITH EXECUTE AS OWNER中修改存储过程和添加。当我这样做时,存储过程失败,并出现以下错误:

Executed as user: ADsql_server. The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'. [SQLSTATE 42000](Error 229). The step failed.

我需要做些什么才能在执行msdb.dbo.sp_send_dbmail的作业中执行存储过程?

不幸的是,WITH EXECUTE AS OWNER无法解决您的问题。

您可能需要添加用户作为内置数据库邮件角色的一部分,例如:

USE msdb;
EXEC sp_addrolemember 'DatabaseMailUserRole', 'ADsql_server'

看看这篇文章。

相关内容

  • 没有找到相关文章

最新更新