首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查看Server代理作业-> MSDB角色

查看Server代理作业-> MSDB角色
EN

Database Administration用户
提问于 2018-04-20 12:40:55
回答 2查看 2.8K关注 0票数 2

当试图在SSMS中查看作业的属性时,用户将在对象sp_help_targetserver上获得错误执行被拒绝。这是MSDB中的sys。

用户有

  • SQLAgentReaderRole
  • SQLAgentUserRole

这应该足以让你看到工作本身。这些角色被分配给他们的AD组。所有用户都是属于具有这些权限的AD组的域用户。

有人知道为什么管理工作室试图执行sp_help_targetserver只是为了查看作业吗?执行sp_help_job可以工作。

EN

回答 2

Database Administration用户

发布于 2018-04-20 13:09:14

Server代理作业可以通过"Target Server“属性以非本地服务器为目标。

为了使“目标多服务器”选项启用,您需要设置一个支持跨企业的自动化管理的主服务器

SSMS正在运行msdb.dbo.sp_help_targetserver存储过程,以获取可能在“目标”属性窗口中列出的服务器的详细信息。

为了运行sp_help_targetserver存储过程,用户必须是sysadmin角色的成员.。如果用户不是sysadmin的成员,他们可以简单地忽略错误消息。但是,他们应该注意到,在主服务器环境中,属性窗口可能不会显示准确的详细信息。

默认情况下,运行msdb.dbo.sp_help_job将运行sp_help_jobserver。但是,如果运行EXEC dbo.sp_help_job @job_name = 'some_job', @job_aspect = 'JOB';,则不会检查目标服务器,也不会显示目标服务器。这可能为非sysadmin用户查看作业属性提供了一种很好的方式,尽管不是通过GUI。

对于Server代理角色,代理角色表示关于SQLAgentReaderRole的事

SQLAgentReaderRole包括所有SQLAgentUserRole权限以及查看可用多服务器作业列表、其属性和历史记录的权限。此角色的成员还可以查看所有可用作业和作业计划及其属性的列表,而不只是查看它们拥有的作业和作业计划。SQLAgentReaderRole成员不能更改职务所有权以获得对他们尚未拥有的作业的访问权。只有对象资源管理器中的作业节点对SQLAgentReaderRole成员可见。

上面的内容似乎与sp_help_targetserver的Docs不一致,后者明确规定用户必须是sysadmin角色的成员。

票数 3
EN

Database Administration用户

发布于 2018-04-20 15:11:29

我基本上通过重新设置权限来解决这个问题。删除SQLAgentReader和SQLAgentUser角色下的所有用户,并重新添加它们。还授予有问题的用户在SP_HELP_TARGET_SERVERS上执行。这不是一种解决办法,而是一种解决办法。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/204521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档