阅读SQL Server Agent job fails when the job uses a linked server。
解决方法:为了解决这个问题,可以使用以下方法之一:
方法1:
将系统管理员设置为作业所有者。
方法2:
使用映射的安全上下文来处理所连接的服务器,并将作业修改为运行OSQL。
要为连接的服务器设置映射安全上下文:右键单击所连接的服务器,然后单击“属性”。单击“安全性”选项卡。选择以下选项之一。使用登录名的当前安全上下文进行制作 使用此安全上下文进行制作 要修改作业以运行OSQL: 右键单击作业,然后单击“属性”。在步骤选项卡中,单击要编辑的步骤名称,然后单击“编辑”。在“编辑作业步骤”对话框的“常规”选项卡中,在类型列表中单击“操作系统命令(CmdExec)”。在“命令”文本框中键入osql -E -Q“执行存储过程”。单击“编辑作业步骤”对话框中的“确定”按钮。在“属性”对话框中,单击“确定”。
在连接的服务器定义中选择:
使用登录名的当前安全上下文进行制作
我曾经遇到过这个问题,尝试更改用户权限等等,但是后来我找到了这篇文章。我没有使用"使用当前登录的安全上下文",而是使用了"使用此安全上下文",并指定了帐户和密码,这解决了问题。所以问题不在于SQL任务或我的存储过程,而是在我的链接服务器中。尽管链接服务器确实可以工作... 但在SQL任务中调用链接服务器时,链接服务器必须明确指定帐户详细信息。
sa
,它就可以工作了。 - Lukasz Szozda