sql-server-2005 – 从存储过程调用sp_start_job
发布时间:2020-12-12 16:54:57 所属栏目:MsSql教程 来源:网络整理
导读:我们的开发人员需要能够从他们的.Net代码启动SQL Server代理作业.我知道我可以调用msdb..sp_start_job来做到这一点,但我不想让普通用户帐户直接访问运行作业. 我想要做的是使用WITH EXECUTE AS子句在应用程序的数据库中创建一个存储过程来模拟代理帐户.我们拥
我们的开发人员需要能够从他们的.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数据库并授予其正确的权限. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |