设定非系统管理员可建立及管理 SQL Server Agent 作业

设定非系统管理员可建立及管理 SQL Server Agent 作业


问题描述

某日委外厂商发信给User,提到应用程序要以程序方式建立SQL Server Agent作业发生错误是因为权限不足,因此要User联络IT人员把AP所使用的SQL Server登入(Login)设定为sysadmin。

熟悉SQL Server的朋友都知道sysadmin这个服务器角色的权限可以做什么,如果依照厂商所说得直接将登入加入sysadmin服务器角色当然立刻可以解决问题,但应用程序只需要建立/删除SQL Server Agent作业,基于权限最小化原则,只授权登入所需的权限就好,会不会更为恰当?

因此若要让非系统管理员或DBA可以自行建立及管理的SQL Server Agent作业,可以参考本文的介绍。

建立使用者对应及设定成员资格

请开启SQL Server Management Studio,在对象总管中找到应用程序所使用的登入,于登入属性窗口点选【使用者对应>勾选msdb】。

于下方数据库角色成员资格对象勾选【SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole】,接着按确定关闭窗口。

另外,依照应用程序的需求,视情况授权登入拥有查询sysjobs系统数据表的权限,以查询SQL Server Agent作业的排程,可以下列的T-SQL命令码来完成:



go

grant select on dbo.sysjobs to [登入名称]

go

参考数据

设定使用者可建立及管理 SQL Server Agent作业

设定使用者可建立及管理 SQL Server Agent 作业

原文:大专栏  设定非系统管理员可建立及管理 SQL Server Agent 作业


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11505602.html