首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MSDB数据库表之后,"_localserver_view“是什么意思?

在MSDB数据库表之后,"_localserver_view“是什么意思?
EN

Database Administration用户
提问于 2018-12-11 19:03:24
回答 1查看 159关注 0票数 0

什么等于包含后缀[msdb]. [dbo]. [sysschedules_localserver_view]的数据库表_localserver_view

[msdb].[Dbo].[Sp_help_schedule]存在权限问题,我注意到我选择运行这个存储过程的用户,在表[msdb].[dbo].[sysbobschedules]中选择access比访问表[msdb]. [dbo].[sysschedules_localserver_view] (由[msdb].[dbo].[sp_help_schedule]的内部命令执行)更多是没有意义的。

还请注意,此表不存在于msdb数据库或表、视图或存储过程文件夹中。

为什么要知道这个_localserver_view扩展在权限或表视图中更改了什么。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-12-12 13:54:17

我不确定我是否理解你的问题,但我会尽力解释不同之处。

当您在msdb中拥有完全权限时,您将得到相同的行

  • 执行msdb.dbo.sp_help_schedule
  • msdb.dbo.sysschedules_localserver_view中选择
  • msdb.dbo.sysschedules中选择

这是因为msdb.dbo.sp_help_schedulemsdb.dbo.sysschedules_localserver_view中选择,而后者从msdb.dbo.sysschedules中选择。

当从问题中提到的msdb.dbo.sysjobschedules中选择时,您将得到更少的行,这是因为msdb.dbo.sysjobschedules

包含要由Server代理执行的作业的计划信息。

msdb.dbo.sysschedules还显示当前与任何现有作业无关的计划,例如包含可能未配置的数据收集器计划。

当用户在msdb

中只有select权限时

他将无法执行msdb.dbo.sp_help_schedule,他将在从表msdb.dbo.sysschedulesmsdb.dbo.sysjobschedules中选择时获得完整的结果,但在从msdb.dbo.sysschedules_localserver_view视图中选择时不会得到任何行。

这是因为此视图包含where子句:

代码语言:javascript
复制
WHERE (svr.master_server = 0)
  AND ( (sched.owner_sid = SUSER_SID())
        OR (ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) = 1)
      OR (ISNULL(IS_MEMBER(N'SQLAgentReaderRole'), 0) = 1)
      )

这意味着要从该视图中获取任何行,对于当前用户来说,以下内容之一应该是正确的:

  • 用户是作业的owner (只返回与所属作业相关的计划)
  • 相应的登录名是sysadmin固定服务器角色的成员(所有行都将被返回)
  • user是SQLAgentReaderRole数据库角色的成员(将返回所有行)
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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