我正在尝试创建一个存储过程,该存储过程创建一个作业,并以编程方式执行并运行它。这是可行的,但我也需要模拟一个用户,因为最终用户将没有权限这样做。
我已经创建了一个测试用户(sa2)并给予了它权限,我可以很好地运行我的过程。如果我将行添加为' sa2‘(或owner),并在仍以sa2身份登录时运行相同的过程,则会得到以下错误:
Msg 229、14级、状态5、过程msdb..sp_add_job、第1批开始行2行对象'sp_add_job‘、数据库'msdb’、模式'dbo‘的执行权限被拒绝。Msg 229,14级,状态5,过程msdb..sp_add_jobstep,第1行批处理开始行2执行权限被拒绝了对对象‘sp_add_jobstep,数据库'msdb',模式'dbo’的执行权限。Msg 229、14级、状态5、过程msdb..sp_add_jobserver、第1批开始行2行对象‘sp_add_j观察者’、数据库'msdb‘、模式'dbo’的执行权限被拒绝。Msg 229、14级、状态5、过程msdb..sp_start_job、第1批开始行2行对象'sp_ Start _job‘、数据库'msdb’、模式'dbo‘的执行权限被拒绝。
我的最终目标是让它对另一个用户起作用,但奇怪的是,我能够以sa2的身份登录,并在过程声明中包含了EXECUTE行。
有谁知道这是为什么,我能做些什么来绕过它吗?
发布于 2020-01-28 15:48:14
谢谢你的帮助。答案是在大卫·布朗的第二篇文章中,第二个解决方案(6.3)帮助了
https://stackoverflow.com/questions/59932576
复制相似问题