Omówienie Configuration Manager Protokołu Kerberos dla 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 usłudze Microsoft SQL Server. Kerberos Configuration Manager for SQL Server to narzędzie diagnostyczne, które ułatwia rozwiązywanie problemów z łącznością związanych z protokołem Kerberos, które mają wpływ na SQL Server, SQL Server Reporting Services (SSRS) i SQL Server Analysis Services (SSAS). Ten artykuł zawiera informacje o sposobie korzystania z narzędzia kerberos Configuration Manager i sposobie interpretowania danych wyjściowych z narzędzia w celu rozwiązania problemów z protokołem Kerberos, które mają wpływ na SQL Server.

Funkcje protokołu Kerberos Configuration Manager

Protokół Kerberos Configuration Manager może wykonywać następujące zadania:

  • Zbieraj informacje o wystąpieniach systemu operacyjnego, SQL Server firmy Microsoft i odbiornikach zawsze włączonych grup dostępności zainstalowanych na serwerze.
  • Zgłoś wszystkie konfiguracje głównej nazwy usługi (SPN) i delegowania na serwerze.
  • Identyfikowanie potencjalnych problemów w numerach SPN i delegowaniach.
  • Rozwiązywanie potencjalnych problemów 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 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

Przed rozpoczęciem rozwiązywania problemów zalecamy zapoznanie się z wymaganiami wstępnymi, a następnie przejście do ogólnej listy kontrolnej w celu rozwiązywania problemów z błędami związanymi z łącznością.

Uwaga

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

Pobieranie narzędzia

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

Microsoft Kerberos Configuration Manager for SQL Server

Uwaga

Narzędzie można pobrać i zainstalować na dowolnym komputerze w domenie, który może nawiązać połączenie z komputerem opartym na SQL Server.

Uprawnienia

Aby rozwiązać problemy z łącznością wpływające na usługi SQL, SSRS i SSAS, połącz się z komputerem docelowym (hostującym usługę) przy użyciu konta użytkownika domeny z uprawnieniami administracyjnymi do tego komputera.

Opcjonalnie: Jeśli chcesz użyć narzędzia do rozwiązywania problemów z nazwą SPN zidentyfikowanych przez narzędzie, konto domeny powinno mieć uprawnienie Zweryfikowana nazwa reguły zapisu w usłudze .

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 SQL Server.

Aby uzyskać informacje o sposobie uruchamiania aplikacji jako administrator lub inny użytkownik, zobacz Używanie uruchamiania w celu uruchomienia aplikacji jako administrator.

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

  • Aby nawiązać połączenie z komputerem zdalnym opartym na SQL Server, wprowadź odpowiednie wartości dla nazwy serwera, nazwy użytkownika domeny i hasła.

    Uwaga

    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 SQL Server. W związku z tym zawsze wprowadź nazwę komputera hostującego wystąpienie 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

    Konto, które uruchamia narzędzie, powinno być kontem administratora lokalnego. Aby uzyskać informacje o sposobie uruchamiania aplikacji jako administrator lub inny użytkownik, zobacz Używanie uruchamiania w celu uruchomienia aplikacji jako administrator.

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

Zrzut ekranu przedstawiający widok wszystkich trzech kart w Configuration Manager protokołu Kerberos.

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 SQL Server, które znajdują się na serwerze docelowym, oraz zawiera szczegółowe informacje, takie jak wymagana nazwa SPN i jej stan.

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

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

    Okno dialogowe umożliwiające podanie nazwy pliku CMD.

Plik generateSPNss.cmd został utworzony i można go uruchomić w wierszu polecenia. Zawartość pliku generateSPNss.cmd będzie podobna do poniższego 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 narzędzia SetSPN, aby utworzyć nazwę SPN w ramach konta usługi dla SQL Server.

  • Użyj polecenia Napraw , aby rozwiązać problemy i dodać nazwy SPN. Nazwę SPN można dodać 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

    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 portów dynamicznych na statyczne lub zapewnienie niezbędnych uprawnień dla konta usługi w celu zarejestrowania i wyrejestrowania nazwy SPN przy każdym uruchomieniu usługi SQL. W przeciwnym razie należy ręcznie wyrejestrować i ponownie zarejestrować odpowiednie nazwy SPN za każdym razem, gdy usługa zostanie uruchomiona. 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 wyewidencjonowanie nazwy 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 połączonych serwerów na potrzeby delegowania.

    Zrzut ekranu przedstawiający kartę Delegowanie.

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

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

  • Stan — dobry

    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 SQL Server w usłudze Active Directory.

    Akcja: Wykonaj następujące kroki, aby sprawdzić, czy problemy z nazwą SPN zostały rozwiązane:

    1. Wybierz pozycję Napraw , 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 uprawnienia niezbędne 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 aktualizacji usługi Active Directory, użyj polecenia Generuj lub Wygeneruj wszystko , aby wygenerować skrypt, który pomoże administratorowi usługi Active Directory dodać brakujące nazwy SPN.
    5. Po dodaniu nazw SPN uruchom ponownie protokół Kerberos Configuration Manager, aby sprawdzić, czy problemy z nazwą SPN zostały rozwiązane.
  • Stan — protokół TCP musi być włączony do korzystania z konfiguracji protokołu Kerberos.

    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 SQL Server:

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

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

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

    4. W obszarze Konsola wybierz pozycję SQL Server Services.

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

    6. Wybierz pozycję Uruchom ponownie, aby zatrzymać i ponownie uruchomić usługę 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żyć protokołu Kerberos w celu nawiązania połączenia z SQL Server, należy ustawić nazwane wystąpienie tak, aby używało portu statycznego i używało tego portu podczas rejestrowania nazwy SPN. W przeciwnym razie nazwa SPN zarejestrowana w usłudze Active Directory stanie się nieprawidłowa przy następnym rozpoczęciu nasłuchiwania nazwanego wystąpienia na nowym porcie innym niż ten, w ramach którego zarejestrowano nazwę SPN.

    Uwaga

    To zalecenie dotyczy tylko środowisk, które zależą od ręcznej rejestracji nazwy SPN.

    Akcja: Wykonaj następujące kroki, aby skonfigurować wystąpienie SQL Server do korzystania z portu statycznego:

    1. W obszarze SQL Server Configuration Manager — Konsola rozwiń węzeł SQL Server Konfiguracja sieci, rozwiń węzeł Protokoły dla <instance name>programu , a następnie kliknij dwukrotnie pozycję 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ę do pozycji 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 SQL Server. Aby uzyskać więcej informacji, zobacz Konfigurowanie serwera do nasłuchiwania na określonym porcie TCP.
    6. Jeśli wartość Nasłuchiwanie wszystkich jest ustawiona na Wartość Nie, przejdź do pozycji 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 SQL Server, aby ustawienia zostały zastosowane. 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 uprawnienia niezbędne do aktualizacji usługi Active Directory, nieprawidłowa nazwa SPN zostanie usunięta.

      • Jeśli konto domeny nie ma niezbędnych uprawnień do aktualizacji usługi Active Directory, użyj polecenia Generuj lub wygeneruj wszystko , aby wygenerować niezbędny skrypt, który można podać administratorowi usługi Active Directory w celu usunięcia zduplikowanych nazw SPN.

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

    Uwaga

    Po uruchomieniu wystąpienia aparatu bazy danych SQL Server SQL Server próbuje zarejestrować nazwę SPN dla usługi SQL Server. Po zatrzymaniu wystąpienia SQL Server próbuje wyrejestrować nazwę SPN. Aby tak się stało, konto usługi SQL Server wymaga odpowiednich uprawnień w usłudze Active Directory. Jeśli jednak konto usługi nie ma tych praw, automatyczna rejestracja nazwy SPN 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

    W środowiskach, w których usługa SQL jest klastrowana, automatyczna rejestracja nazw SPN nie jest zalecana, ponieważ wyrejestrowanie nazwy SPN i ponowne zarejestrowanie nazwy SPN w usłudze Active Directory może zająć więcej czasu niż czas potrzebny na przejście do trybu online przez SQL Server. Jeśli rejestracja nazwy SPN nie nastąpi w czasie, może to uniemożliwić SQL Server przechodzenie do trybu online, ponieważ administrator klastra nie może nawiązać połączenia z wystąpieniem SQL Server.

Opcje dodatkowe

Aby wygenerować listę nazw SPN z wiersza polecenia:

  1. Przejdź do wiersza polecenia.

    Uwaga

    Aby rozwiązać problem z łącznością mający wpływ na usługę SSRS, otwórz administracyjne okno wiersza polecenia.

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

  3. Wprowadź wartość 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. Połącz się z docelowym serwerem systemu Windows.
  2. Wybierz Zapisz.
  3. Określ lokalizację, w którą ma zostać zapisany plik. Może 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 pozycję Załaduj.
  2. Otwórz plik XML wygenerowany przez protokół 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 nad poleceniem, aby wygenerować etykietkę narzędzia.
  • Uruchom polecenie KerberosConfigMgr.exe -h w wierszu polecenia.
  • Wybierz przycisk Pomoc na pasku narzędzi.

Zobacz też