적용 대상: SQL Server
원래 KB 번호: 2985455
Summary
SQL Server Kerberos 구성 관리자 사용하여 SQL Server 연결 실패를 일으키는 Kerberos 구성 문제를 진단하고 해결합니다. 이 도구는 SQL Server, SSRS(SQL Server Reporting Services) 및 SSAS(SQL Server Analysis Services) 인스턴스를 검사하고 누락되거나 중복된 SPN(서비스 주체 이름) 및 위임 문제를 보고합니다. 스크립트를 생성하거나 수정 사항을 적용할 수도 있습니다. 이 문서에서는 도구를 다운로드하는 방법, 필요한 권한 및 해당 출력을 해석하는 방법을 설명합니다.
참고
Kerberos 구성 관리자는 있는 그대로 제공되며, 이에 대한 기술 지원 또는 업데이트는 제공되지 않습니다. SQL Server 2022 및 이후 버전에서 사용하는 WMI(Windows Management Instrumentation) 공급자를 사용하도록 업데이트되지 않았습니다. 이러한 버전에 대한 Kerberos 구성 문제를 해결하고 진단하려면 SQLCheck를 사용합니다.
Kerberos 구성 관리자가 수행하는 기능
Kerberos 구성 관리자는 다음 작업을 수행할 수 있습니다.
- 서버에 설치된 운영 체제, SQL Server 인스턴스 및 Always On 가용성 그룹 수신기에 대한 정보를 수집합니다.
- 서버의 모든 SPN 및 위임 구성을 나열합니다.
- SPN 및 위임의 잠재적인 문제를 식별합니다.
- 잠재적인 SPN 문제를 해결합니다.
Kerberos 구성 관리자로 해결할 수 있는 오류
이 도구를 사용하여 다음 오류를 진단합니다.
- HTTP 401 오류, SSRS 오류 및 기타 유사한 오류
- SSPI 컨텍스트를 생성할 수 없음 자세한 내용은 SQL Server에서 "SSPI 컨텍스트를 생성할 수 없음" 오류 수정을(를) 참조하세요.
- 사용자 'NT AUTHORITY\ANONYMOUS LOGON'이(가) 로그인하지 못했습니다.
- 사용자 '(null)'이(가) 로그인하지 못했습니다.
- 사용자 로그인 실패 (비어 있음)
문제 해결을 시작하기 전에 연결 오류를 해결하기 위한 필수 구성 요소 및 검사 목록을 검토합니다.
SQL Server 컴퓨터에 대한 관리자 액세스 권한이 있는 경우 해당 컴퓨터에서 SQLCheck(SQL 연결 설정 확인 도구)를 실행할 수도 있습니다. 출력을 검토하여 SQL Server 인스턴스의 SPN 구성을 확인하세요.
Kerberos 구성 관리자 다운로드
Microsoft 다운로드 센터에서 도구를 다운로드합니다:
SQL Server용 Microsoft Kerberos 구성 관리자.
SQL Server 컴퓨터에 연결할 수 있는 도메인의 모든 컴퓨터에 도구를 다운로드하고 설치할 수 있습니다. 다운로드 센터 페이지에서 지원되는 버전 및 시스템 요구 사항을 검토해야 합니다.
Kerberos 구성 관리자 실행하는 데 필요한 권한
SQL Server, SSRS 및 SSAS에 영향을 주는 연결 문제를 해결하려면 해당 컴퓨터에 대한 관리 권한이 있는 도메인 사용자 계정을 사용하여 대상 컴퓨터(서비스를 호스트하는 컴퓨터)에 연결합니다.
선택 사항: 도구를 사용하여 식별된 SPN 문제를 해결하려면 도메인 계정에 Validated write to service principal name 권한이 있어야 합니다.
Kerberos 구성 관리자를 시작하고 서버에 연결
설치가 완료되면 설치 폴더에서 KerberosConfigMgr.exe를 실행합니다. 기본적으로 위치는 C:\Program Files\Microsoft\Kerberos 구성 관리자 for SQL Server입니다.
관리자 또는 다른 사용자로 앱을 시작하는 방법에 대한 자세한 내용은 실행을 사용하여 관리자 권한으로 앱 시작을(를) 참조하세요.
다음 옵션 중 하나를 사용하여 연결합니다.
원격 SQL Server 컴퓨터에 연결: 서버 이름, 도메인 사용자 이름 및 암호에 대한 적절한 값을 입력합니다.
참고
이 도구는 Windows API를 사용하여 SQL Server 컴퓨터에 대한 Kerberos 구성 정보를 쿼리하고 표시합니다. 명명된 인스턴스에 대한 Kerberos 관련 문제를 해결하는 경우에도 항상 SQL Server 인스턴스를 호스트하는 컴퓨터의 이름을 입력합니다.
로컬 서버에 연결: 연결을 선택하여 Kerberos 구성을 분석합니다. 서버 이름, 도메인 사용자 이름 또는 암호를 지정할 필요가 없습니다.
참고
도구를 시작하는 계정은 로컬 관리자 계정이어야 합니다. 관리자 또는 다른 사용자로 앱을 시작하는 방법에 대한 자세한 내용은 실행을 사용하여 앱을 관리자로 시작을(를) 참조하세요.
Kerberos 구성 관리자의 탭 및 명령
연결이 성공하면 도구는 다음 스크린샷과 같이 모든 관련 SPN을 표시합니다.
도구에는 다음과 같은 탭이 있습니다.
- 시스템: 사용자 정보 및 컴퓨터 정보를 표시합니다.
- SPN: 도구가 대상 서버에서 찾은 각 SQL Server 인스턴스에 대한 SPN 정보를 표시합니다. 또한 필요한 SPN 및 해당 상태와 같은 세부 정보도 제공합니다. 각 행에는 생성 및 수정 단추가 있습니다.
- 위임: 서비스 계정의 위임 구성에 영향을 주는 문제를 식별합니다.
SPN 생성 스크립트 생성
생성을 SPN 탭에서 사용하여 누락된 SPN을 찾고 명령 프롬프트에서 실행할 수 있는 스크립트를 만듭니다.
SPN 탭의 SPN 스크립트 열에서 스크립트하려는 SPN에 대해 생성을 선택합니다.
열리는 대화 상자에서 이름을 입력하고(이 예제에서는 generateSPNss), 파일 형식을 Kerberos Config Mgr (.cmd)(으)로 설정한 다음 저장을 선택합니다.
도구는 generateSPNss.cmd 파일을 만듭니다. 파일의 내용은 다음 예제와 유사합니다.
:: This script is generated by the Microsoft® SQL Server® Kerberos Configuration Manager tool.
:: The script may update the system information, SPN settings and Delegation configurations of a given server.
:: SPN and Delegation configuration updates require Windows Domain Administrator permission to execute.
:: A Domain Admin should review the configurations recommended by this tool and take appropriate actions to enable Kerberos authentication.
:: Please contact Microsoft Support if Kerberos connection problem persists.
:: The file is intended to be run in domain `<DomainName>.com`"
:: Corrections for MSSQLSvc/`<HostName>.<DomainName>.com` **SetSPN -s MSSQLSvc/`<HostName>`. `<DomainName>`.com UserName**
SetSPN을 사용하여 SQL Server의 서비스 계정 아래에 SPN을 만듭니다.
SPN 문제 해결
SPN 탭에서 Fix를 사용하여 문제를 해결하고 SPN을 추가합니다. 필요한 권한이 있는 경우에만 SPN을 추가할 수 있습니다. Fix을 선택하면 도구에 다음 툴팁이 표시됩니다.
참고
이 도구는 고정 포트가 있는 기본 인스턴스 및 명명된 인스턴스에 대해서만 수정 및 생성 명령을 제공합니다. 동적 포트를 사용하는 명명된 인스턴스의 경우 동적 포트에서 정적 포트로 전환하거나 서비스 계정에 SQL Server 서비스가 시작될 때마다 SPN을 등록 및 등록 취소할 수 있는 권한을 제공하는 것이 좋습니다. 그렇지 않으면 서비스가 시작될 때마다 해당 SPN을 수동으로 등록 취소하고 다시 등록해야 합니다. 자세한 내용은 Kerberos 연결의 서비스 사용자 이름 등록을 참조하세요.
위임 설정 확인
위임을 사용하여 서비스 계정의 위임 구성에 영향을 주는 문제를 식별합니다. 이 옵션은 연결된 서버 문제를 해결하는 데 특히 유용합니다. 예를 들어 SPN 검사가 통과하지만 연결된 서버 쿼리가 여전히 실패하는 경우 서비스 계정이 자격 증명을 위임하도록 구성되지 않을 수 있습니다. 자세한 내용은 연결된 서버(데이터베이스 엔진) 및 SQL Server 인증에서 연결된 서버의 연결 문제를 참조하세요.
Kerberos 구성 관리자 진단 해석 및 조치
상태 열을 확인하여 도구에서 진단을 검토합니다. 상태에 따라 적절한 단계에 따라 문제를 해결합니다. 다음 섹션에서는 각 상태를 설명합니다.
상태: 양호
추가 정보: 선택한 항목이 올바르게 구성되었습니다. 출력의 다음 항목으로 이동합니다.
조치: 작업이 필요하지 않습니다.
상태: 필수 SPN이 없습니다.
추가 정보: 필수 SPN 열에 나열된 SPN이 Active Directory의 SQL Server 시작 계정에 누락된 경우 이 상태가 표시됩니다.
작업: 다음 단계에 따라 누락된 SPN을 추가하고 문제가 해결되었는지 확인합니다.
- 수정을 선택하여 경고 대화 상자에서 정보를 검토합니다.
-
예를 선택하여 누락된 SPN을 Active Directory에 추가합니다.
- 도메인 계정에 Active Directory를 업데이트하는 데 필요한 권한이 있는 경우 도구는 필요한 SPN을 Active Directory에 추가합니다.
- 도메인 계정에 Active Directory를 업데이트하는 데 필요한 권한이 없는 경우 생성 또는 모두 생성을 사용하여 Active Directory 관리자가 누락된 SPN을 추가하는 데 도움이 되는 스크립트를 생성하세요.
- SPN이 추가된 후 Kerberos 구성 관리자를 다시 실행하여 SPN 문제가 해결되었는지 확인합니다.
상태: Kerberos 구성을 사용하려면 TCP를 사용하도록 설정해야 합니다.
추가 정보: 클라이언트 컴퓨터에서 TCP를 사용하도록 설정하지 않은 경우 이 상태가 표시됩니다.
작업: 다음 단계에 따라 SQL Server 인스턴스에 대해 TCP/IP 프로토콜을 사용하도록 설정합니다.
- SQL Server 구성 관리자 - 콘솔에서 SQL Server 네트워크 구성을 확장합니다.
- 콘솔에서 에 대해 프로토콜을 선택합니다.
- 세부 정보에서 TCP/IP를 선택한 다음 사용을 선택합니다.
- 콘솔에서 SQL Server 서비스를 선택합니다.
- 세부 정보에서 에 SQL Server를 선택합니다.
- 다시 시작을 선택하여 SQL Server 서비스를 중지하고 다시 시작합니다. 자세한 내용은 서버 네트워크 프로토콜 사용 또는 사용 안 함의 "서버 네트워크 프로토콜 사용 또는 사용 안 함" 섹션을 참조하세요.
상태: 동적 포트
추가 정보: 동적 포트(기본 구성)를 사용하는 명명된 인스턴스에 대해 이 상태가 나타납니다. Kerberos를 사용해 SQL Server에 연결해야 하는 환경에서는 명명된 인스턴스를 정적 포트를 사용하도록 설정하고 SPN을 등록할 때 해당 포트를 사용합니다. 그렇지 않으면 다음에 명명된 인스턴스가 다른 포트에서 수신 대기를 시작할 때 Active Directory 등록된 SPN이 유효하지 않습니다.
참고
이 권장 사항은 수동 SPN 등록에 의존하는 환경에만 적용됩니다.
작업: 정적 포트를 사용하도록 SQL Server 인스턴스를 구성하려면 다음 단계를 수행합니다.
-
SQL Server 구성 관리자 - 콘솔에서 SQL Server 네트워크 구성을 확장하고,
<instance name>의 프로토콜을 확장한 다음 TCP/IP를 두 번 클릭합니다. - TCP/IP 속성의 프로토콜 탭에서 모두 수신 대기를 선택합니다.
- Listen All이 Yes로 설정된 경우 IP Addresses로 전환한 다음 창 맨 아래로 스크롤하여 IPAll 설정을 찾습니다.
- TCP 동적 포트에서 현재 값을 삭제한 다음 TCP 포트에 포트 번호를 입력하십시오.
- 확인을 선택한 다음 SQL Server 인스턴스를 다시 시작합니다. 자세한 내용은 서버가 특정 TCP 포트에서 수신 대기하도록 구성 참조하세요.
- Listen All이 No로 설정된 경우 IP Addresses로 전환하고 IP1 및 IP2 노드에 표시되는 모든 IP 주소를 확인합니다. 사용으로 설정된 주소의 경우 TCP 동적 포트의 현재 값을 제거한 다음 TCP 포트에 값을 설정합니다.
- 확인을 선택한 다음, 설정을 적용하려면 SQL Server 인스턴스를 다시 시작하세요. 자세한 내용은 서버가 특정 TCP 포트에서 수신 대기하도록 구성을 참조하세요.
상태: 중복 SPN
추가 정보: 동일한 SPN이 Active Directory 다른 계정으로 등록된 경우 이 상태가 나타납니다.
작업: 다음 단계에 따라 Active Directory 중복 SPN을 제거합니다.
- 수정을 선택하세요.
- 경고 대화 상자에서 정보를 확인합니다.
- 잘못된 SPN을 Active Directory에서 제거하려면 예를 선택합니다.
- 도메인 계정에 Active Directory 업데이트하는 데 필요한 권한이 있는 경우 도구는 잘못된 SPN을 삭제합니다.
- 도메인 계정에 Active Directory를 업데이트하는 데 필요한 권한이 없는 경우 생성 또는 모두 생성을 사용하여 Active Directory 관리자에게 전달해 중복 SPN을 제거하도록 할 수 있는 스크립트를 생성합니다.
- SPN이 제거된 후 Kerberos 구성 관리자 다시 실행하여 SPN 문제가 해결되었는지 확인합니다.
참고
SQL Server 데이터베이스 엔진 인스턴스가 시작되면 SQL Server는 SQL Server 서비스 SPN을 등록하려고 합니다. 인스턴스가 중지되면 SQL Server는 SPN 등록을 해제하려고 시도합니다. 이 프로세스가 수행되려면 SQL Server 서비스 계정에 Active Directory 적절한 권한이 필요합니다. 서비스 계정에 이러한 권한이 없으면 자동 SPN 등록이 발생하지 않습니다. 이 경우 Active Directory 관리자와 협력하여 SQL Server 인스턴스가 Kerberos 인증을 사용할 수 있도록 SPN을 등록하세요. 자세한 내용은 Kerberos 연결의 서비스 사용자 이름 등록을 참조하세요.
참고
SQL Server 클러스터된 환경에서는 SPN의 자동 등록을 권장하지 않습니다. SQL Server 온라인 상태가 되는 데 걸리는 것보다 Active Directory SPN을 등록 취소하고 다시 등록하는 데 더 많은 시간이 걸릴 수 있습니다. SPN 등록이 적시에 수행되지 않으면 클러스터 관리자가 SQL Server 인스턴스에 연결할 수 없으므로 SQL Server 온라인 상태가 되지 않을 수 있습니다.
Kerberos 구성 관리자 추가 옵션
명령줄에서 SPN 목록 생성
- 명령 프롬프트를 여세요. SSRS에 영향을 주는 연결 문제를 해결하려면 관리자: 명령 프롬프트 창을 엽니다.
- KerberosConfigMgr.exe가 포함된 폴더로 전환합니다.
-
KerberosConfigMgr.exe -q -l를 입력하세요. - 더 많은 명령줄 옵션을 보려면
KerberosConfigMgr.exe -h를 입력합니다.
서버의 Kerberos 구성 저장
- 대상 Windows 서버에 연결합니다.
- 저장을 선택하세요.
- 파일을 저장할 위치를 지정합니다. 로컬 드라이브 또는 네트워크 공유를 선택합니다. 이 도구는 파일을 .xml 형식으로 저장합니다.
저장된 Kerberos 구성 보기
- 로드를 선택합니다.
- Kerberos 구성 관리자가 생성한 XML 파일을 여세요.
도구의 로그 파일 보기
기본적으로 이 도구는 애플리케이션을 실행할 때마다 새 로그 파일을 생성합니다. 사용자의 애플리케이션 데이터 폴더에서 로그 파일을 찾을 수 있습니다: %APPDATA%\Microsoft\KerberosConfigMgr.
도움받기
다음 방법 중 하나를 사용할 수 있습니다.
- 마우스 포인터를 명령 위로 마우스로 가리키면 도구 설명이 표시됩니다.
- 명령 프롬프트에서
KerberosConfigMgr.exe -h을 실행합니다. - 도구 모음에서 도움말 단추를 선택합니다.