Jon of All Trades Asked: 2013-04-10 12:02:23 +0800 CST2013-04-10 12:02:23 +0800 CST 2013-04-10 12:02:23 +0800 CST 我可以在不授予系统管理员权限的情况下委派 SQL 代理权限吗? 772 我想让用户能够管理 SQL 代理作业。根据文档页面,我可以通过在 msdb 上授予“适当”角色来做到这一点。我已授予所有三个 SQLAgent% 角色,但是当(作为测试)尝试重命名作业时,用户会收到此错误: Only members of sysadmin role are allowed to update or delete jobs owned by a different login. (Microsoft SQL Server, Error: 14525) 这个问题很相似,但没有解决 SQL 代理的答案。在 MS SQL 2K8 中,系统管理员角色是唯一的解决方案吗? sql-server-2008 permissions 3 个回答 Voted Best Answer Mike Fal 2013-04-10T12:14:44+08:002013-04-10T12:14:44+08:00 不幸的是,代理作业的管理目前只能由该sysadmin角色的成员完成。相关文档可在MSDN上找到。您会注意到三个代理角色(用户、读者和操作员)具有不同的级别,但最终用户sysadmin只能编辑/管理用户拥有的作业,而不能编辑/管理其他用户创建的作业。 kafe 2014-01-04T01:45:47+08:002014-01-04T01:45:47+08:00 它可以通过覆盖 sp_update_job 过程来完成。此处描述的步骤:http: //borishristov.com/blog/modifying-not-owned-sql-agent-jobs-without-being-a-sysadmin/ DWalker07 2017-12-09T13:55:04+08:002017-12-09T13:55:04+08:00 页面https://learn.microsoft.com/en-us/sql/ssms/agent/sql-server-agent-fixed-database-roles说“用户必须是这些固定数据库角色之一的成员或成员sysadmin 固定服务器角色以使用 SQL Server 代理。” (强调我的) 因此,您不需要成为 sysadmin 角色的成员即可查看 SQL Server 代理,这与 Mike Fal 上面所说的相矛盾。也许这是一个 SQL Server 或 SSMS 错误......
不幸的是,代理作业的管理目前只能由该
sysadmin
角色的成员完成。相关文档可在MSDN上找到。您会注意到三个代理角色(用户、读者和操作员)具有不同的级别,但最终用户sysadmin
只能编辑/管理用户拥有的作业,而不能编辑/管理其他用户创建的作业。它可以通过覆盖 sp_update_job 过程来完成。此处描述的步骤:http: //borishristov.com/blog/modifying-not-owned-sql-agent-jobs-without-being-a-sysadmin/
页面https://learn.microsoft.com/en-us/sql/ssms/agent/sql-server-agent-fixed-database-roles说“用户必须是这些固定数据库角色之一的成员或成员sysadmin 固定服务器角色以使用 SQL Server 代理。” (强调我的)
因此,您不需要成为 sysadmin 角色的成员即可查看 SQL Server 代理,这与 Mike Fal 上面所说的相矛盾。也许这是一个 SQL Server 或 SSMS 错误......