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同步到本地比较好。