1

我的服务器设置有点奇怪。我的一位数据库管理员向我的服务器添加了一个链接服务器。在链接服务器属性中,我在安全视图中看到以下内容:

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.

之后,我翻阅了文档,发现了一篇解释这个问题的KB811031文章,并建议我映射安全上下文并将作业作为 osql 运行。

我不必映射安全上下文,因为(从上面链接服务器的设置中可以看出)它已经被映射了。我按照建议将类型更改为操作系统命令。当我现在运行作业时,我收到以下消息:

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 作业运行的任何建议?

4

0 回答 0