SQL SERVER linked server Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

昨天创建了一个View, 这个view是一系列的表达式(CTE)组成,封装了好多的业务逻辑,简化下语句如下

;with CTE AS(

...
)

SELECT a.company_id
,b.company_name

FROM #company_tech a
LEFT JOIN dim.company b ON a.company_id = b.company_id
LEFT JOIN [lindedserver].[DB].[kg].[viw_Maping] c ON a.tech_stack = c.Synonym

结果: 同事 review 数据的时候报以下错误。 select * from [dbo].[viw_so_job_tech_stack] with(nolock)

Msg 18456, Level 14, State 1, Line 1
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

但是我自己run这个view的数据是没有任何问题的,一时间傻眼了。查找各种问题,都不能理解。明明我是可以run的,但是其他team member就是face errors。

这个问题的根源:linked server

 

DW(B)上面创建Source(A)的Linked server(用SQL 用户名密码创建). 但我在B上面创建view(取A的数据)时候,这个view是没有问题的。

当我用client(C)链接到DW(B)的时候就出现了身份认证错误。

下面是msdn给我们提供的解决方案。

https://blogs.msdn.microsoft.com/sql_protocols/2006/08/10/sql-linked-server-query-failed-with-login-failed-for-user/

本人建议用SSIS 把相关数据从SOURCE同步到本地比较好。

 

posted @ 2017-09-01 10:57  Jesse_Li  阅读(2280)  评论(0编辑  收藏  举报