相关疑难解决方法(0)

Kerberos 身份验证不适用于 SQL Server 2012 中的链接服务器

我正在使用 2 个在 Windows Server 2012 上运行 SQL Server 2012 的 SQL Server 设置 DEV/TEST 环境。我们正在从 Windows Server 2008 上的 SQL Server 2005 迁移,在那里我们已经正确启动并运行。

在 SQL Server 2012 中,Kerberos 身份验证不起作用。

每个服务器都有自己的 Active Directory 帐户,该帐户具有通过 Active Directory 用户和计算机授予的“写入服务主体名称”和“读取服务主体名称”权限。每当我连接到 SQL Server 2005 服务器并运行:

SELECT net_transport, auth_scheme 
FROM sys.dm_exec_connections 
WHERE session_id = @@SPID;
Run Code Online (Sandbox Code Playgroud)

我懂了:

net_transport    auth_scheme
TCP              KERBEROS 
Run Code Online (Sandbox Code Playgroud)

当我对新的 SQL Server 2012 实例执行相同的查询时,我看到:

net_transport    auth_scheme
TCP              NTLM 
Run Code Online (Sandbox Code Playgroud)

如果我SetSPN -Q MSSQLSvc/*用来查询服务主体名称的活动域,我会看到列出的 2005 和 2012 服务器,除了服务器名称之外,其他方式完全相同。

例如:

MSSQLSvc/SERVERa2005.domain.inet
MSSQLSvc/SERVERa2005domain.inet:1433
MSSQLSvc/SERVERb2005.domain.inet
MSSQLSvc/SERVERb2005domain.inet:1433
MSSQLSvc/SERVERa2012.domain.inet
MSSQLSvc/SERVERa2012domain.inet:1433 …
Run Code Online (Sandbox Code Playgroud)

sql-server linked-server sql-server-2012 kerberos

8
推荐指数
1
解决办法
6397
查看次数