我在尝试从作业运行存储过程时遇到错误“访问远程服务器被拒绝,因为当前的安全上下文不受信任。[SQLSTATE 42000](错误 15274)”,并且存储过程查询链接服务器。该作业被配置为作为 SQL 登录名运行,我将其称为 user1,并且我已在每个可能的位置授予 user1 权限和所有权。
以下是作业的设置方式:
- 所有者为 user1 的 SQL Server 代理作业
- 作业中的一个步骤在“高级”选项卡上配置为“以用户身份运行”user1(“常规”选项卡上的“运行身份”列表是一个空白列表——不确定这是否是一个因素)
- 该步骤调用 user1 有权执行的存储过程
- 存储过程定义为
WITH EXECUTE AS 'user1'
- 链接服务器具有 user1 的本地/远程映射,其中输入了远程用户和远程密码。两台服务器上的用户名和密码相同。“对于上面列表中未定义的登录,连接将”选项设置为“使用登录的当前安全上下文进行”。我还尝试将此选项设置为“使用此安全上下文进行”,并重复 user1 及其密码。
- user1 具有在远程服务器上查询的适当权限。
- 我什至让 user1 成为本地服务器上的系统管理员
尽管如此,我仍然收到访问错误。我一定是在某处遗漏了什么……有什么想法吗?
我通过 1)
WITH EXECUTE AS 'user1'
从存储过程中删除子句和 2)user1
从作业中删除来解决此问题——它不再是作业步骤的所有者或“以用户身份运行”。我的最终配置是: