我需要作为SQLAgentReaderRole
运行一个作业,并且它工作正常(因为该作业包含Proxy等)。但是我还需要以某种方式修改角色到特定的用户和特定的工作。
例如:我有3个不同的工作(Job1,Job2,Job3
),所有这些都可以在SSMS的工作下拉列表中看到。此外,我只需要运行Job2
,而不需要看到Job1
和Job3
。是否有可能以某种方式做到这一点(当然过滤器不是一个选项)?
谢谢!
您可以创建一个运行作业的存储过程。您可以使用with execute as owner
以数据库所有者的身份运行存储过程。这样,用户就不需要sp_start_job的权限了。
create procedure dbo.DoYourJob
with execute as owner
as
exec sp_start_job @job_name = 'YourJob'
授予DoYourJob
的执行权限,允许特定用户启动作业。
这也可能有用授予SQL Server用户执行特定作业的权限