我在DATABASE1
中设置了一个存储过程,其中包括调用存储过程调用sp_start_job
(这是msdb数据库中的一个存储过程,它将触发一个代理作业)。
我创建了代理登录,并将此登录映射到 msdb 和 DATABASE1 数据库中的用户帐户。
在我原来的存储过程中,我使用EXEC作为proxylogin。此代理用户有权执行此过程,并且在msdb数据库中可以执行sp_start_job过程,并且还是SqlAgentOperator,SqlAgentUser和SqlAgentReader角色的成员。我还为用户提供了 DATABASE1 和 msdb authenicate权限。
这个想法是任何可以执行原始过程的用户实际上都会在proxylogin的凭据下运行它,所以我不必分配这些权限。我仍然遇到权限错误,是否有人对这个问题有所了解?
答案 0 :(得分:0)
我们通过转换跨数据库所有权链接来解决这个问题