无法对SQL作业内的链接服务器执行查询
我的服务器设置有点奇怪。我的一位数据库管理员向我的服务器添加了一个链接服务器。在链接服务器属性中,我在安全视图中看到以下内容:无法对SQL作业内的链接服务器执行查询,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的服务器设置有点奇怪。我的一位数据库管理员向我的服务器添加了一个链接服务器。在链接服务器属性中,我在安全视图中看到以下内容: Local server login to remote server login mappings: Local Login Impersonate Remote User Remote Password domain\myusername CHECKED For a login n
Local server login to remote server login mappings:
Local Login Impersonate Remote User Remote Password
domain\myusername CHECKED
For a login not defined in the list above, connections will:
- Be made using the security context
Remote login: linkedserveruser
With password: **************
因此,当我创建具有以下内容的存储过程时:
SELECT *
INTO #TEMP
FROM LINKEDSERVERNAME.DBName.dbo.TableName
-- Update local table after processing #TEMP
和设置SQL作业时,该作业失败,并显示以下消息:
Message
Executed as user: NT AUTHORITY\NETWORK SERVICE. Login failed for user 'linkedserveruser'. [SQLSTATE 28000] (Error 18456). The step failed.
Executed as user: domain\MYMACHINENAME$. Msg 18456, Level 14, State 1, Server SOMEOTHERDATABASENAME, Line 1 Login failed for user 'linkedserveruser'. Process Exit Code 0. The step succeeded.
在翻阅文档之后,我找到了一篇解释这个问题的文章,并建议我映射安全上下文并以osql的形式运行该作业
我不必映射安全上下文,因为从上面链接服务器的设置可以看出,它已经被映射了。我按照建议将类型更改为操作系统命令。现在运行作业时,会收到以下消息:
Message
Executed as user: NT AUTHORITY\NETWORK SERVICE. Login failed for user 'linkedserveruser'. [SQLSTATE 28000] (Error 18456). The step failed.
Executed as user: domain\MYMACHINENAME$. Msg 18456, Level 14, State 1, Server SOMEOTHERDATABASENAME, Line 1 Login failed for user 'linkedserveruser'. Process Exit Code 0. The step succeeded.
而且,当工作实际上失败时,它会放弃报告成功。关于如何使这种包含对链接服务器的查询的存储过程作为SQL作业运行,有什么建议吗 您确定没有更改linkedserveruser的密码吗?如果链接的服务器是很久以前安装的,那么很可能密码已经更改。也许您可以通过直接连接到链接的服务器来验证用户名/密码是否正确。您是否尝试过KB文章中建议的其他解决方案?这建议将作业的所有者更改为系统管理员登录名,例如sa,这可能是一个更简单的解决方案。@sl0ppy:是的。我确实试过直接连接到它,而且查询很好。@Nathan:是的。令人惊讶的是,它仍然给了我与用户相同的错误:domain\MYMACHINENAME$。Msg 18456,级别14,状态1,服务器SOMEOTHERDATABASENAME,用户“linkedserveruser”的第1行登录失败。进程退出代码0。这一步成功了。我错过什么了吗?