微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server-2005 – 从存储过程调用sp_start_job

我们的开发人员需要能够从他们的.Net代码启动sql Server代理作业.我知道我可以调用msdb..sp_start_job来做到这一点,但我不想让普通用户帐户直接访问运行作业.

我想要做的是使用WITH EXECUTE AS子句在应用程序的数据库中创建一个存储过程来模拟代理帐户.我们拥有的程序是:

CREATE PROCEDURE dbo.StartAgentJob 
    WITH EXECUTE AS 'agentProxy'
AS
BEGIN
    EXEC msdb.dbo.sp_start_job N'RunThisJob';
END

但是,当我们运行它时,我们收到以下消息:

The EXECUTE permission was denied on the object 'sp_start_job',database 'msdb',schema 'dbo'.

有任何想法吗?这是在sql2005中执行此操作的最佳方法吗?

解决方法

您是否已将agentProxy登录在msdb数据库中并赋予其运行sp_start_job的权限?如果不是,则需要为msdb数据库用户数据库启用数据库权限链接.

您最好将登录信息放入msdb数据库并授予其正确的权限.

原文地址:https://www.jb51.cc/mssql/81129.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐