내 SQL Server(데이터베이스 엔진 도메인 계정)에 대해 Kerberos를 구성하려고 합니다. 다음 명령을 실행했습니다.
SETSPN -A MSSQLSvc/MyDBServer:1433 MyDomain\SQLServerService
MyDBServer를 서버의 FQDN으로 바꾸고 MyDomain\SQLServerService를 내 계정 이름으로 바꿉니다.
그런 다음 쿼리를 실행했습니다.
SELECT s.session_id , c.connect_time , s.login_time , s.login_name , c.protocol_type , c.auth_scheme , s.HOST_NAME , s.program_name FROM sys.dm_exec_sessions s JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
그러면 NTLM이 반환됩니다. 따라서 Kerberos가 아닙니다. 내가 뭘 놓치고 있는 걸까? 계정에 위임 탭을 사용할 수 있으므로 spn 비트가 완벽하게 작동했습니다. 위임탭에서 일부 설정은 필수가 아닌건가요? Sharepoint 2010(설정하려고 함)에 대해 Kerberos를 설정하는 경우에 이 내용을 본 적이 있습니다.
감사해요
답변1
SQL Server를 설명하기 위해 다른 구문에 대해 SPN을 등록해야 한다는 것을 알았습니다. 어떤 이유로 SQL은 인증 과정에서 다른 구문을 사용합니다. 이들 형식을 각각 등록하십시오.
MSSQLSvc/SqlServerName.perrigo.com:instancename
MSSQLSvc/SqlServerName:instancename
MSSQLSvc/SqlServerName.domainname.com:1433
MSSQLSvc/SqlServerName:1433
MSSQLSvc/SqlServerName.domainname.com
MSSQLSvc/SqlServerName
답변2
localhost에서 연결하여 테스트하셨나요?
SPN이 있더라도 일부 로컬 호스트의 경우 NTLM으로 대체(로컬 시스템에 Kerberos가 필요하지 않기 때문에 성능상의 이유로 인해)되는 것 같습니다.