20122012. 8. 3. 10:33

데이터베이스 엔진 서비스가 시작되면 SPN(Service Principal Name)을 등록하려고 합니다. SQL Server를 시작하는 계정에 Active Directory 도메인 서비스에 SPN을 등록할 권한이 없는 경우 이 호출은 실패하고 SQL Server 오류 로그 및 응용 프로그램 이벤트 로그에 경고 메시지가 기록됩니다.

 

The SQL Server Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service. Error: 0x2098, state: 15. Failure to register an SPN may cause integrated authentication to fall back to NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies.

 

아래와 같은 방법으로 SPN 을 등록할 수 있습니다.

 

1. SQL Server 서비스 계정에 대한 SPN 등록

C:\> setspn -A MSSQLSvc/webdb:1433 LAIGO\SQLSERVICE
C:\> setspn -A MSSQLSvc/webdb.laigo.kr:1433 LAIGO\SQLSERVICE

 

 

2. SQL Server 서비스 시작 시, 동적 SPN 등록을 위해  SPN 읽기/쓰기 권한 부여
아래 명령은 도메인 컨트롤러에서만 수행해 주시면 됩니다.

 

1. 시작 – 실행 – adsiedit.msc
2. CN=SQLSERVICE – 속성 – 보안 탭 – 추가 – sqlservice
3. 고급 – 사용 권한 항목 – sqlservice – 편집

 

 

4. SPN 읽기/쓰기 권한 추가
가. 이름 :  serservice 계정
나. 적용 대상 : 이 개체 및 모든 하위 개체
다. servicePrincipalName 읽기/쓰기 허용 체크
라. 이 컨테이너에 있는 개체 및/또는 컨테이너에 사용 권한 적용 체크

 

SQL Server 서비스를 시작하여 SPN 등록 성공 여부를 확인하면 됩니다.

 

 

[참고자료]

Registering a Service Principal Name
http://msdn.microsoft.com/en-us/library/ms191153(v=sql.100).aspx

 

How to troubleshoot the "Cannot generate SSPI context" error message
http://support.microsoft.com/kb/811889/en-us

 

 

작성자 : Lai Go / 작성일자 : 2012.08.03

Posted by Lai Go