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

Sql 通过存储过程权限的跨数据库权限,sql,sql-server-2008,permissions,Sql,Sql Server 2008,Permissions,我在DATABASE1中设置了一个存储过程,其中包括调用存储过程调用sp_start_job这是msdb数据库中的一个存储过程,它将触发代理作业 我已经创建了一个代理登录,并将此登录映射到msdb和DATABASE1数据库中的用户帐户 在我最初的存储过程中,我使用EXEC作为proxylogin。此代理用户有权执行此过程,并且可以在msdb数据库中执行sp_start_作业过程,并且是SqlAgentOperator、SqlAgentUser和SqlAgentReader角色的成员。我还为用户授

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

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

在我最初的存储过程中,我使用EXEC作为proxylogin。此代理用户有权执行此过程,并且可以在msdb数据库中执行sp_start_作业过程,并且是SqlAgentOperator、SqlAgentUser和SqlAgentReader角色的成员。我还为用户授予了DATABASE1和msdb authenicate权限


其思想是,任何能够执行原始过程的用户都将实际在proxylogin的凭据下运行它,因此我不必分配这些权限。我仍然遇到权限错误,有人知道这个问题吗?

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

您是否尝试过显式授予用户直接在存储过程上执行的权限?