MS SQL Server가 NTLM 인증을 사용하는 이유는 무엇입니까?

MS SQL Server가 NTLM 인증을 사용하는 이유는 무엇입니까?

윈도우 서버 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

그런 다음 SQL Server Management Studio를 시작하고 다음과 같이 SQL01에 연결합니다.

여기에 이미지 설명을 입력하세요

그런 다음 다음 쿼리를 실행합니다.

SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid 

그리고 그 결과가 NTLM입니다. 결과가 Kerberos가 아닌 이유는 무엇입니까? SPN은 로컬 시스템 계정을 사용하는 데 적합한 것 같습니다. 서버가 클러스터에 없거나 CNAME을 사용하고 있지 않습니다.

답변1

SQL Server를 호스팅하는 동일한 서버에서 로컬로 SQL Server에 연결했기 때문입니다. 네트워크의 다른 시스템에서 연결할 때 사용되는 인증 메커니즘은 예상대로 Kerberos입니다.

SQL Server는 로컬로 연결하는 경우 항상 NTLM을 사용합니다. Kerberos는 원격으로 연결하는 경우에만 사용됩니다.

이 게시물은SQL Server 프로토콜 블로그, 날짜가 있는 동안에도 같은 내용을 말합니다.

1) SPN이 있는 경우 TCP/IP를 통해 원격 연결을 할 때 Kerberos를 사용합니다.

2) SPN이 있는 경우 XP에서 로컬 TCP 연결을 만들 때 Kerberos가 사용됩니다.

3) WIN 2K3에서 로컬 연결을 할 때는 NTLM을 사용합니다.

4) NP 연결을 통해 NTLM이 사용됩니다.

5) SPN을 찾을 수 없는 경우 TCP 연결을 통해 NTLM이 사용됩니다.

관련 정보