如何确保在创建到 SQL Server 2005 实例的远程连接时使用 Kerberos 身份验证
Source: http://support.microsoft.com/kb/909801
本文介绍了如何确保在创建到 Microsoft SQL Server 2005 实例的远程连接时,使用 Kerberos 身份验证作为 Microsoft Windows 身份验证方法。
如果您使用的是 Windows 集成身份验证而非 SQL 身份验证,SQL Server 2005 会通过 Windows 安全支持提供程序接口 (SSPI) 间接支持 Kerberos 身份验证。但是,当 SQL Server 可以使用 SSPI 来协商要使用的身份验证协议时,在特定情况下 SQL Server 将只使用 Kerberos 身份验证。如果 SQL Server 无法使用 Kerberos 身份验证,Windows 将会使用 NTLM 身份验证。出于安全考虑,我们建议您使用 Kerberos 身份验证,而不要使用 NTLM 身份验证。管理员和用户应当知道如何确保他们是使用 Kerberos 身份验证进行远程连接。要使用 Kerberos 身份验证,必须确保满足下列所有条件:
服务器和客户端计算机都必须是同一 Windows 域的成员或可信任域的成员。 服务器的服务主体名称 (SPN) 必须在 Active Directory 目录服务中进行注册。 SQL Server 2005 实例必须启用 TCP/IP 协议。 客户端必须使用 TCP/IP 协议连接到 SQL Server 2005 实例。例如,您可以将 TCP/IP 协议放在客户端协议顺序的最前面。或者,您可以在连接字符串中添加前缀“tcp:”,以指定连接将使用 TCP/IP 协议。连接到一个 SQL Server 2005 实例后,在 SQL Server Management Studio 中运行以下 Transact-SQL 语句:
select auth_scheme from sys.dm_exec_connections where session_id=@@spid如果 SQL Server 使用的是 Kerberos 身份验证,则结果窗口的 auth_scheme 列中会出现“KERBEROS”的字符串。
有关更多信息,请参见 Microsoft SQL Server 2005 联机丛书中的以下主题:
服务主体名称注册 如何在服务器群集上启用包括 SQL Server 虚拟服务器的 Kerberos 身份验证