AD SQL서버가 윈도우 인증으로 로그인이 안되면
https://github.com/microsoft/CSS_SQL_Networking_Tools/wiki/SQLCHECK
위 프로그램을 사용해 리포트를 수집한다.
SQL Server start Account 가 올바르게 SPN 등록되었는지 확인한다.
Account SPN Has Duplicates
------------ ------------------------------------------------------ --------------
computername$ MSSQLSvc/computername.test.domain.local:1433 False
위는 start 계정이 아니라 컴퓨터로 등록된 경우이다. 이걸 삭제하고 올바르게 등록한다.
서비스 시작 계정을 변경하기위해
계정을 변경하고, sql 을 원하는 시간에 재시작 하려면 아래의 과정을 테스트 해보고 적용한다.
1) spn 을 새로운 계정으로 등록
2) services.msc 에서 아이디와 암호를 변경해둔다.
3) 서비스 점검 시간에 해당 서버를 재시작
0. SPN 확인
* 컴퓨터 네임으로 spn이 등록되어 있으면 AD 계정으로 로그인이 안되는 현상이 일어난다.
* 원인은 services.msc 에서 변경하면 이런 현상이 일어난다. 이런 현상을 발생하지 않게 하려면 계정을 sqlserver configureation manager 에서 변경해야 한다. (당황스럽네..)
일단 컴퓨터 이름으로 spn이 등록된것이 있는지 쿼리한다. SPN 이 hostname으로 등록되어 있으면 안된다.
setspn -T adDomain -q */hostname
위 프로그램을 사용하기 싫으면 sql 스타트 계정이 올바르게 등록 되어 있는지 확인 한다.
example)
setspn -L sqlServiceAccount > c:\spn.txt
notepad c:\spn.txt
1. SPN 삭제
명령 프트를 관리자 권한으로 실행한 후, 다음 명령을 사용하여 SPN을 삭제합니다.
setspn -D <문제되는 SPN> <문제되는 SPN이 등록된 계정 이름>
example) $ 가 있는지 없는지는 위 쿼리에서 나오는 결과를 보고 판단한다.
setspn -D MSSQLSvc/computername.test.domain.local:1433 computername$
setspn -D MSSQLSvc/computername.test.domain.local:1433 computername
2. 수동 등록
SQL Server 서비스 시작 계정(도메인 계정)을 사용하여 SPN을 등록합니다.
setspn -A <SPN> <SPN을 등록할 계정 이름>
example)
setspn -A MSSQLSvc/omputername.test.domain.local sqlServiceAccount
setspn -A MSSQLSvc/omputername.test.domain.local:1433 sqlServiceAccount
AD 에 합류된 서버를 재설치 할때는 AD 에서 제외시켜주고 다시 설치하고 Join 해주도록 하자
아래는 참고