RDS SQL Server Web版查询作业时sysschedules表SELECT权限被拒绝如何解决
解决方案
报错原因是当前执行查询的数据库账号缺少msdb数据库下dbo.sysschedules系统表的SELECT权限,针对RDS SQL Server Web版15.00.x版本,按以下步骤操作即可解决:
- 步骤1:使用RDS实例的主账号(创建实例时设置的初始管理员账号)登录SQL Server,普通业务账号默认没有msdb系统库的权限调整权限。
- 步骤2:执行授权语句,将以下语句中的
<查询使用的业务账号名>替换为你实际跑查询的账号后运行:
USE msdb; -- 方案1:单独授予sysschedules表的查询权限 GRANT SELECT ON dbo.sysschedules TO [<查询使用的业务账号名>];
如果后续还提示其他msdb系统表(如sysjobs、sysjobschedules)的权限不足,可以用相同语法单独授权,也可以直接授予内置的最小权限角色,一次性覆盖所有SQL Agent相关查询权限:
USE msdb; -- 方案2:授予SQLAgent用户角色,更安全也更便捷 GRANT SQLAgentUserRole TO [<查询使用的业务账号名>];
- 步骤3:切换回业务账号重新执行原查询语句,即可正常返回结果。
注意:RDS SQL Server默认不开放sysadmin服务器角色权限,请勿尝试使用本地实例加sysadmin角色的方式操作,上述方案适配托管RDS的权限规则。
内容的提问来源于stack exchange,提问作者Levun
相关产品推荐
相关产品推荐

