Sql server 如何向SQLServer2005系统存储过程授予权限(例如sp_开始_作业)
我希望能够从web应用程序随意调用SSIS包。我发现,在本地计算机上运行sp_start_作业时,我可以成功地完成这项任务。但是,当我发布到我们的测试站点时,我得到:Sql server 如何向SQLServer2005系统存储过程授予权限(例如sp_开始_作业),sql-server,sql-server-2005,ssis,Sql Server,Sql Server 2005,Ssis,我希望能够从web应用程序随意调用SSIS包。我发现,在本地计算机上运行sp_start_作业时,我可以成功地完成这项任务。但是,当我发布到我们的测试站点时,我得到: 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 E
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服务器和db服务器之间进行通信。来自:
默认情况下,系统管理员的成员
固定服务器角色可以执行此操作
存储过程。其他用户必须是
已授予以下SQL语句之一
服务器代理修复了中的数据库角色
msdb数据库:
* SQLAgentUserRole
* SQLAgentReaderRole
* SQLAgentOperatorRole
谢谢你的信息。前两个角色对我不起作用,但SQLAgentOperatorRole起作用。唯一的问题是它的权限比我想要的稍微多一些。是否有任何方法可以创建我自己的角色,该角色仅具有执行作业的权限?对于可能错过该任务的其他人,这些是msdb数据库中的角色。