通过存储过程权限跨数据库权限

时间:2012-05-12 22:30:55

标签: sql sql-server-2008 permissions

我在DATABASE1中设置了一个存储过程,其中包括调用存储过程调用sp_start_job(这是msdb数据库中的一个存储过程,它将触发一个代理作业)。

我创建了代理登录,并将此登录映射到 msdb DATABASE1 数据库中的用户帐户。

在我原来的存储过程中,我使用EXEC作为proxylogin。此代理用户有权执行此过程,并且在msdb数据库中可以执行sp_start_job过程,并且还是SqlAgentOperator,SqlAgentUser和SqlAgentReader角色的成员。我还为用户提供了 DATABASE1 msdb authenicate权限。

这个想法是任何可以执行原始过程的用户实际上都会在proxylogin的凭据下运行它,所以我不必分配这些权限。我仍然遇到权限错误,是否有人对这个问题有所了解?

1 个答案:

答案 0 :(得分:0)

我们通过转换跨数据库所有权链接来解决这个问题