Udostępnij za pomocą


Omówienie programu Kerberos Configuration Manager dla programu SQL Server

Dotyczy: SQL Server

Oryginalny numer KB: 2985455

Nieprawidłowa konfiguracja protokołu Kerberos w sieci może powodować różne błędy łączności w programie Microsoft SQL Server. Kerberos Configuration Manager dla programu SQL Server to narzędzie diagnostyczne, które ułatwia rozwiązywanie problemów z łącznością związaną z protokołem Kerberos, które mają wpływ na program SQL Server, usługi SQL Server Reporting Services (SSRS) i usługi SQL Server Analysis Services (SSAS). Ten artykuł zawiera informacje dotyczące używania narzędzia Kerberos Configuration Manager oraz interpretowania danych wyjściowych z narzędzia w celu rozwiązania problemów z kerberos, które mają wpływ na program SQL Server.

Uwaga 16.

Program Kerberos Configuration Manager jest udostępniany w taki sposób, jak jest i nie jest oferowana żadna pomoc techniczna ani aktualizacje. Nie zaktualizowano go do używania programu SQL Server 2022 i nowszych wersji dostawcy usługi WMI. Aby rozwiązać i zdiagnozować problemy z konfiguracją protokołu Kerberos związane z programem SQL Server, zobacz SQLCheck.

Funkcje programu Kerberos Configuration Manager

Program Kerberos Configuration Manager może wykonywać następujące zadania:

  • Zbierz informacje o systemach operacyjnych, wystąpieniach programu Microsoft SQL Server i odbiornikach zawsze włączonej grupy dostępności zainstalowanych na serwerze.
  • Zgłoś wszystkie konfiguracje głównej nazwy usługi (SPN) i delegowania na serwerze.
  • Zidentyfikuj potencjalne problemy w nazwach SPN i delegowaniu.
  • Rozwiąż potencjalne problemy z nazwą SPN.

Scenariusze użycia

To narzędzie ułatwia rozwiązywanie problemów z następującymi wyjątkami:

  • 401

    Uwaga: ten komunikat o błędzie dotyczy błędów HTTP, błędów usług SSRS i innych podobnych błędów.

  • Nie można wygenerować kontekstu SSPI
  • Logowanie użytkownika "NTAUTHORITY\ANONYMOUS LOGON" nie powiodło się
  • Logowanie użytkownika '(null)' nie powiodło się
  • Logowanie użytkownika nie powiodło się (puste)

Uwaga 16.

Przed rozpoczęciem rozwiązywania problemów zalecamy przejrzenie wymagań wstępnych, a następnie zapoznanie się z ogólną listą kontrolną w celu rozwiązywania problemów z błędami związanymi z łącznością.

Uwaga 16.

Jeśli masz dostęp administratora do komputera opartego na programie SQL Server, możesz również uruchomić narzędzie do sprawdzania ustawień łączności SQL na tym komputerze, a następnie przejrzeć dane wyjściowe, aby sprawdzić konfigurację nazwy SPN wystąpienia programu SQL Server.

Pobieranie narzędzia

To narzędzie jest dostępne do pobrania z Centrum pobierania Microsoft:

Microsoft Kerberos Configuration Manager dla programu SQL Server

Uwaga 16.

Narzędzie można pobrać i zainstalować na dowolnym komputerze w domenie, który może łączyć się z komputerem opartym na programie SQL Server.

Uprawnienia

Aby rozwiązać problemy z łącznością, które mają wpływ na usługi SQL, SSRS i SSAS, połącz się z komputerem docelowym (hostem usługi) przy użyciu konta użytkownika domeny, które ma uprawnienia administracyjne do tego komputera.

Opcjonalnie: Jeśli chcesz użyć narzędzia do rozwiązania wszelkich problemów z nazwą SPN, które są identyfikowane przez narzędzie, konto domeny powinno mieć uprawnienie Zweryfikowane zapis do nazwy głównej usługi.

Korzystanie z narzędzia

Po zakończeniu instalacji uruchom plik binarny KerberosConfigMgr.exe , przechodząc do folderu instalacyjnego. Domyślnie lokalizacja to C:\Program Files\Microsoft\Kerberos Configuration Manager dla programu SQL Server.

Aby uzyskać informacje na temat uruchamiania aplikacji jako administrator lub inny użytkownik, zobacz Uruchamianie przy użyciu polecenia Uruchom, aby uruchomić aplikację jako administrator.

Aby rozpocząć rozwiązywanie problemów, użyj jednej z następujących opcji:

  • Aby nawiązać połączenie ze zdalnym komputerem z programem SQL Server, wprowadź odpowiednie wartości w polach Nazwa serwera, Nazwa użytkownika domeny i Hasło.

    Uwaga 16.

    Narzędzie Kerberos Configuration Manager używa interfejsu API systemu Windows do wykonywania zapytań i wyświetlania informacji o konfiguracji protokołu Kerberos dla komputera z programem SQL Server. W związku z tym zawsze wprowadź nazwę komputera, który hostuje wystąpienie programu SQL Server, nawet jeśli rozwiązujesz problemy związane z protokołem Kerberos dla nazwanego wystąpienia.

  • Aby nawiązać połączenie z serwerem lokalnym, wybierz pozycję Połącz , aby przeanalizować konfigurację protokołu Kerberos. W takim przypadku nie trzeba określać nazwy serwera, nazwy użytkownika domeny ani hasła.

    Uwaga 16.

    Konto uruchamiające narzędzie powinno być kontem administratora lokalnego. Aby uzyskać informacje na temat uruchamiania aplikacji jako administrator lub inny użytkownik, zobacz Uruchamianie przy użyciu polecenia Uruchom, aby uruchomić aplikację jako administrator.

Po pomyślnym nawiązaniu połączenia wszystkie powiązane nazwy SPN zostaną wyświetlone na poniższym zrzucie ekranu.

Zrzut ekranu przedstawiający widok wszystkich trzech kart w programie Kerberos Configuration Manager.

Na tym zrzucie ekranu interfejs użytkownika ma następujące karty:

  • System: wyświetla informacje o użytkowniku i informacje o maszynie.

  • NAZWA SPN: Wyświetla informacje o głównej nazwie usługi (SPN) dotyczące każdego wystąpienia programu SQL Server, które znajdują się na serwerze docelowym, i zawiera szczegółowe informacje, takie jak wymagana nazwa SPN i jego stan.

  • Generuj: pomaga znaleźć brakujące i skonfigurowane nazwy SPN. Ułatwia również generowanie skryptu generowania nazwy SPN.

    1. Wybierz Generuj.
    2. W wyświetlonym oknie dialogowym podaj nazwę (w tym przypadku "generateSPNss"), ustaw pozycję Zapisz jako typ jako plik Kerberos Config Mgr(.cmd), a następnie wybierz pozycję Zapisz.

    Okno dialogowe, aby podać nazwę pliku CMD.

Plik generateSPNss.cmd jest tworzony i można go uruchomić w wierszu polecenia. Zawartość pliku generateSPNss.cmd będzie wyglądać podobnie do następującego przykładu:

:: 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** 
  • Użyj programu SetSPN , aby utworzyć nazwę SPN na koncie usługi dla programu SQL Server.

  • Użyj poprawki, aby rozwiązać problemy i dodać nazwy SPN. Możesz dodać nazwę SPN tylko wtedy, gdy masz wymagane uprawnienia. Po wybraniu pozycji Napraw zostanie wyświetlona następująca porada narzędzia:

    Zrzut ekranu przedstawiający opcję Napraw, aby dodać nazwę SPN.

    Uwaga 16.

    Narzędzie udostępnia polecenia Napraw i Generuj tylko dla wystąpień domyślnych i nazwanych wystąpień, które mają porty statyczne. W przypadku nazwanych wystąpień korzystających z portów dynamicznych zalecamy przełączenie się z dynamicznych na porty statyczne lub zapewnienie niezbędnych uprawnień dla konta usługi w celu zarejestrowania i wyrejestrowania głównej nazwy usługi za każdym razem, gdy usługa SQL jest uruchomiona. W przeciwnym razie należy ręcznie wyrejestrować i ponownie zarejestrować odpowiednie nazwy SPN przy każdym uruchomieniu usługi. Aby uzyskać więcej informacji, zobacz Rejestrowanie głównej nazwy usługi dla połączeń Kerberos.

  • Delegowanie: Użyj delegowania, aby zidentyfikować wszelkie problemy wpływające na konfigurację konta usługi na potrzeby delegowania. Jest to szczególnie przydatne w rozwiązywaniu problemów z serwerem połączonym. Jeśli na przykład wyewidencjonuj nazwę SPN jest w porządku, ale nadal występują problemy wpływające na zapytania połączonego serwera, może to oznaczać, że konto usługi nie jest skonfigurowane do delegowania poświadczeń. Aby uzyskać więcej informacji, zobacz temat Książki online w temacie Konfigurowanie serwerów połączonych na potrzeby delegowania.

    Zrzut ekranu przedstawiający kartę Delegowanie.

Interpretowanie i działanie na podstawie diagnozy z programu Kerberos Configuration Manager

Przejrzyj diagnostykę z narzędzia, odwołując się do kolumny Stan . Na podstawie stanu wykonaj odpowiednie kroki, aby rozwiązać problem.

  • Stan — dobre

    Więcej informacji: Zaznaczony element jest poprawnie skonfigurowany. Przejdź do następnego elementu w danych wyjściowych.

    Akcja: Nie jest wymagana żadna akcja.

  • Stan — brak wymaganej nazwy SPN

    Więcej informacji: Ten stan jest zgłaszany, jeśli brakuje głównej nazwy usługi (SPN) wymienionej w kolumnie Wymagana nazwa SPN dla konta uruchamiania programu SQL Server w usłudze Active Directory.

    Akcja: Wykonaj następujące kroki, aby sprawdzić, czy problemy z główną nazwą usługi zostały rozwiązane:

    1. Wybierz pozycję Poprawka , aby przejrzeć informacje w oknie dialogowym Ostrzeżenie .
    2. Wybierz pozycję Tak , aby dodać brakującą nazwę SPN do usługi Active Directory.
    3. Jeśli konto domeny ma niezbędne uprawnienia do aktualizacji usługi Active Directory, wymagana nazwa SPN zostanie dodana do usługi Active Directory.
    4. Jeśli konto domeny nie ma niezbędnych uprawnień do zaktualizowania usługi Active Directory, użyj polecenia Generate or Generate All (Generuj lub Generuj wszystko), aby wygenerować skrypt, który pomoże administratorowi usługi Active Directory dodać brakujące nazwy SPN.
    5. Po dodaniu nazw SPN ponownie uruchom program Kerberos Configuration Manager, aby sprawdzić, czy problemy z główną nazwą usługi zostały rozwiązane.
  • Stan — aby można było używać konfiguracji protokołu Kerberos, należy włączyć protokół TCP.

    Więcej informacji: Ten stan jest wyświetlany, jeśli protokół TCP nie jest włączony na komputerze klienckim.

    Akcja: Wykonaj następujące kroki, aby włączyć protokół TCP/IP dla wystąpienia programu SQL Server:

    1. W programie SQL Server Configuration Manager — konsola rozwiń węzeł Konfiguracja sieci programu SQL Server.

    2. W konsoli wybierz pozycję Protokoły dla elementu <instance name>.

    3. W obszarze Szczegóły wybierz pozycję TCP/IP, a następnie wybierz pozycję Włącz.

    4. W konsoli wybierz pozycję Usługi programu SQL Server.

    5. W obszarze Szczegóły wybierz pozycję SQL Server dla .<instance name>

    6. Wybierz pozycję Uruchom ponownie , aby zatrzymać i ponownie uruchomić usługę PROGRAMU SQL Server. Aby uzyskać dodatkowe informacje, zobacz sekcję Włączanie lub wyłączanie protokołu sieciowego serwera.

  • Stan — port dynamiczny

    Więcej informacji: Ten stan jest wyświetlany dla nazwanych wystąpień korzystających z portów dynamicznych (konfiguracja domyślna). W środowiskach, w których należy używać protokołu Kerberos do nawiązywania połączenia z programem SQL Server, należy ustawić nazwane wystąpienie tak, aby używało portu statycznego i używać tego portu podczas rejestrowania głównej nazwy usługi. W przeciwnym razie nazwa SPN zarejestrowana w usłudze Active Directory stanie się nieprawidłowa przy następnym uruchomieniu nasłuchiwania nazwanego wystąpienia na nowym porcie innym niż nazwa SPN zarejestrowana w ramach.

    Uwaga 16.

    To zalecenie dotyczy tylko środowisk, które zależą od ręcznej rejestracji głównej nazwy usługi.

    Akcja: Wykonaj następujące kroki, aby skonfigurować wystąpienie programu SQL Server do używania portu statycznego:

    1. W menedżerze konfiguracji programu SQL Server — konsola rozwiń węzeł Konfiguracja sieci programu SQL Server, rozwiń węzeł Protokoły dla <instance name>programu , a następnie kliknij dwukrotnie protokół TCP/IP.
    2. W obszarze Właściwości protokołu TCP/IP wybierz pozycję Nasłuchiwanie wszystkich w protokole.
    3. Jeśli ustawienie Nasłuchiwanie wszystkich ma wartość Tak, przełącz się na adresy IP i przewiń do dołu okna, aby znaleźć ustawienie IPAll .
    4. Usuń bieżącą wartość w portach dynamicznych TCP i wprowadź numer portu w porcie TCP.
    5. Wybierz przycisk OK, a następnie uruchom ponownie wystąpienie programu SQL Server. Aby uzyskać więcej informacji, zobacz Konfigurowanie serwera do nasłuchiwania na określonym porcie TCP.
    6. Jeśli dla opcji Nasłuchiwanie wszystkich jest ustawiona wartość Nie, przełącz się na adresy IP i sprawdź każdy adres IP wyświetlany w węzłach IP1 i IP2. W przypadku adresów, które są ustawione na Włączone, usuń bieżącą wartość w portach dynamicznych TCP, a następnie ustaw wartość w porcie TCP.
    7. Wybierz przycisk OK, a następnie uruchom ponownie wystąpienie programu SQL Server, aby ustawienia zaczęły obowiązywać. Aby uzyskać więcej informacji, zobacz Konfigurowanie serwera do nasłuchiwania na określonym porcie TCP.
  • Stan — zduplikowana nazwa SPN

    Więcej informacji: Ten scenariusz może wystąpić, jeśli ta sama nazwa SPN jest zarejestrowana na różnych kontach w usłudze Active Directory.

    Akcje: wykonaj następujące kroki, aby dodać nazwę SPN do usługi Active Directory:

    1. Wybierz pozycję Napraw.

    2. Sprawdź informacje w oknie dialogowym Ostrzeżenie .

    3. Wybierz pozycję Tak , aby dodać brakującą nazwę SPN do usługi Active Directory.

      • Jeśli konto domeny ma niezbędne uprawnienia do aktualizacji usługi Active Directory, zostanie usunięta nieprawidłowa nazwa SPN.

      • Jeśli konto domeny nie ma niezbędnych uprawnień do zaktualizowania usługi Active Directory, użyj polecenia Generate or Generate All (Generuj lub Generuj wszystko), aby wygenerować niezbędny skrypt, który można podać administratorowi usługi Active Directory, aby usunąć zduplikowane nazwy SPN.

    4. Po usunięciu nazw SPN uruchom ponownie program Kerberos Configuration Manager, aby sprawdzić, czy problemy z główną nazwą usługi zostały rozwiązane.

    Uwaga 16.

    Po uruchomieniu wystąpienia aparatu bazy danych programu SQL Server program SQL Server próbuje zarejestrować nazwę SPN dla usługi PROGRAMU SQL Server. Po zatrzymaniu wystąpienia program SQL Server próbuje wyrejestrować nazwę SPN. W takim przypadku konto usługi PROGRAMU SQL Server wymaga odpowiednich uprawnień w usłudze Active Directory. Jeśli jednak konto usługi nie ma tych praw, automatyczna rejestracja głównej nazwy usługi nie występuje i musisz współpracować z administratorem usługi Active Directory, aby zarejestrować te nazwy SPN, aby wystąpienia SQL mogły włączyć uwierzytelnianie Kerberos. Aby uzyskać więcej informacji, zobacz Rejestrowanie głównej nazwy usługi dla połączeń Kerberos.

    Uwaga 16.

    W środowiskach, w których klaster sql jest klastrowany, automatyczna rejestracja nazw SPN nie jest zalecana, ponieważ może upłynąć więcej czasu, aby wyrejestrować nazwę SPN i ponownie zarejestrować nazwę SPN w usłudze Active Directory niż czas potrzebny na pobranie programu SQL Server do trybu online. Jeśli rejestracja nazwy SPN nie występuje w czasie, może to uniemożliwić programowi SQL Server uzyskanie dostępu do trybu online, ponieważ administrator klastra nie może nawiązać połączenia z wystąpieniem programu SQL Server.

Opcje dodatkowe

Aby wygenerować listę nazw SPN z poziomu wiersza polecenia:

  1. Przejdź do wiersza polecenia.

    Uwaga 16.

    Aby rozwiązać problem z łącznością, który ma wpływ na usługę SSRS, otwórz okno wiersza polecenia administracyjnego.

  2. Przejdź do folderu zawierającego KerberosConfigMgr.exe.

  3. Wprowadź KerberosConfigMgr.exe -q -l.

  4. Aby uzyskać więcej opcji wiersza polecenia, wpisz KerberosConfigMgr.exe -h.

Aby zapisać informacje o konfiguracji protokołu Kerberos serwera:

  1. Nawiąż połączenie z docelowym serwerem z systemem Windows.
  2. Wybierz pozycję Zapisz.
  3. Określ lokalizację, do której ma zostać zapisany plik. Może on znajdować się na dysku lokalnym lub w udziale sieciowym. Plik zostanie zapisany w formacie .xml .

Aby wyświetlić informacje o konfiguracji protokołu Kerberos serwera z zapisanego pliku:

  1. Wybierz Załaduj.
  2. Otwórz plik XML wygenerowany przez program Kerberos Configuration Manager.

Aby wyświetlić pliki dziennika dla tego narzędzia:

Domyślnie jeden plik dziennika jest generowany za każdym razem, gdy aplikacja jest uruchamiana w folderze danych aplikacji: %APPDATA%\Microsoft\KerberosConfigMgr.

Aby uzyskać pomoc, użyj dowolnej z następujących metod:

  • Umieść wskaźnik myszy na poleceniu, aby wygenerować etykietkę narzędzia.
  • Uruchom polecenie KerberosConfigMgr.exe -h w wierszu polecenia.
  • Wybierz przycisk Pomoc na pasku narzędzi.

Zobacz też