如何向SqlServer 2005系统存储过程授予权限(例如sp_start_job)

时间:2009-05-08 19:51:35

标签: sql-server sql-server-2005 ssis

我希望能够从Web应用程序中随意调用SSIS包。我发现在本地计算机上运行时,我可以使用sp_start_job成功完成此操作。但是,当我发布到我们的测试网站时,我得到:

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

所以我试过这个

USE msdb

CREATE USER [TheUser] FOR LOGIN [TheLogin]
GO

GRANT EXECUTE ON sp_start_job TO [TheUser]
GO

然而,在运行此之后,我仍然收到权限被拒绝错误。是否有一些特殊的东西要为系统存储过程授予权限?

编辑:不知道它是否有所作为,但Web服务器位于DMZ中,因此我使用sql server身份验证在Web服务器和数据库服务器之间进行通信。

1 个答案:

答案 0 :(得分:2)

来自MSDN

  

默认情况下,sysadmin的成员   固定服务器角色可以执行此操作   存储过程。其他用户必须是   授予以下SQL之一   Server Agent修复了数据库角色   msdb数据库:

* SQLAgentUserRole
* SQLAgentReaderRole
* SQLAgentOperatorRole