Rya*_*ies 13 kerberos sql-server spn sql-server-2008-r2
Windows Server 2008 R2。
已安装 SQL Server 2008 R2。
MSSQL 服务作为本地系统运行。
服务器 FQDN 是 SQL01.domain.com。
SQL01 已加入名为 domain.com 的 Active Directory 域。
以下是 setspn 的输出:
C:\> setspn -L sql01
...
MSSQLSvc/SQL01.domain.com:1433
MSSQLSvc/SQL01.domain.com
WSMAN/SQL01.domain.com
WSMAN/SQL01
TERMSRV/SQL01.domain.com
TERMSRV/SQL01
RestrictedKrbHost/SQL01
RestrictedKrbHost/SQL01.domain.com
HOST/SQL01.domain.com
HOST/SQL01
Run Code Online (Sandbox Code Playgroud)
然后我启动 SQL Server Management Studio 并因此连接到 SQL01:
然后我运行以下查询:
SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid
Run Code Online (Sandbox Code Playgroud)
结果是 NTLM。为什么结果不是 Kerberos?对于使用本地系统帐户,SPN 似乎是正确的。服务器不在集群中或使用 CNAME。
Rya*_*ies 17
这是因为我从托管 SQL Server 的同一台服务器本地连接到 SQL Server。当我从网络上的另一台机器连接时,使用的身份验证机制是 Kerberos,正如预期的那样。
如果在本地连接,SQL Server 将始终使用 NTLM。Kerberos 仅在远程连接时使用。
这篇来自SQL Server Protocols Blog 的帖子虽然过时了,但也说了同样的话:
1) 如果 SPN 存在,则在通过 TCP/IP 建立远程连接时使用 Kerberos。
2) 如果 SPN 存在,在 XP 上建立本地 tcp 连接时使用 Kerberos。
3) 在 WIN 2K3 上进行本地连接时使用 NTLM。
4) NTLM 用于 NP 连接。
5) 如果未找到 SPN,则通过 TCP 连接使用 NTLM。
归档时间: |
|
查看次数: |
31555 次 |
最近记录: |