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


12

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

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

여기에 이미지 설명을 입력하십시오

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

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

결과는 NTLM입니다. 결과가 Kerberos가 아닌 이유는 무엇입니까? SPN이 로컬 시스템 계정을 사용하기에 올바른 것 같습니다. 서버가 클러스터에 없거나 CNAME을 사용 중입니다.


커뮤니티가 모두 혜택을 볼 수 있도록 질문에 대답하는 것은 어떻습니까?
mdpc

답변:


15

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

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

SQL Server 프로토콜 블로그 의이 게시물은 날짜가 있지만 같은 내용을 말합니다.

1) SPN이 있으면 TCP / IP를 통한 원격 연결을 수행 할 때 Kerberos가 사용됩니다.

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

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

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

5) NTN은 SPN을 찾지 못하면 TCP 연결을 통해 사용됩니다.


3
SPN과 토론으로 몇 시간 동안 해왔 던이 모든 연구 (연구)를 환영합니다. 감사합니다! :)
dynamiclynk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.