Übersicht über die Kerberos-Configuration Manager für SQL Server

Gilt für:  SQL Server

Ursprüngliche KB-Nummer: 2985455

Eine falsche Kerberos-Konfiguration in Ihrem Netzwerk kann verschiedene Verbindungsfehler in Microsoft SQL Server verursachen. Kerberos Configuration Manager für SQL Server ist ein Diagnosetool, mit dem Sie Kerberos-bezogene Konnektivitätsprobleme beheben können, die sich auf SQL Server, SQL Server Reporting Services (SSRS) und SQL Server Analysis Services (SSAS). Dieser Artikel enthält Informationen zur Verwendung des Kerberos-Configuration Manager-Tools und zur Interpretation der Ausgabe des Tools zum Beheben von Kerberos-Problemen, die sich auf SQL Server auswirken.

Funktionen der Kerberos-Configuration Manager

Kerberos Configuration Manager kann die folgenden Aufgaben ausführen:

  • Sammeln Sie Informationen über das Betriebssystem, Microsoft SQL Server-Instanzen und Always On Verfügbarkeitsgruppenlistener, die auf einem Server installiert sind.
  • Alle Dienstprinzipalnamen- und Delegierungskonfigurationen auf dem Server melden.
  • Identifizieren potenzieller Probleme in SPNs und Delegationen.
  • Beheben sie potenzielle SPN-Probleme.

Verwendungsszenarien

Dieses Tool hilft Ihnen bei der Problembehandlung für die folgenden Ausnahmen:

  • 401

    Hinweis: Diese Fehlermeldung gilt für HTTP-Fehler, SSRS-Fehler und andere ähnliche Fehler.

  • SSPI-Kontext kann nicht generiert werden
  • Fehler bei der Anmeldung für Benutzer 'NTAUTHORITY\ANONYMOUS LOGON'
  • Anmelden für Benutzer '(null)' fehlgeschlagen
  • Fehler bei der Anmeldung für den Benutzer (leer)

Hinweis

Bevor Sie mit der Problembehandlung beginnen, empfehlen wir Ihnen, die Voraussetzungen zu überprüfen und dann die allgemeine Checkliste zur Problembehandlung bei Verbindungsfehlern zu durchlaufen.

Hinweis

Wenn Sie Administratorzugriff auf Ihren SQL Server-basierten Computer haben, können Sie auch das Tool "SQL Connectivity Settings Check" auf diesem Computer ausführen und dann die Ausgabe überprüfen, um die SPN-Konfiguration Ihrer SQL Server-Instanz zu überprüfen.

Herunterladen des Tools

Dieses Tool steht im Microsoft Download Center zum Download zur Verfügung:

Microsoft Kerberos Configuration Manager für SQL Server

Hinweis

Sie können das Tool auf jedem Computer in Ihrer Domäne herunterladen und installieren, der eine Verbindung mit dem SQL Server-basierten Computer herstellen kann.

Berechtigungen

Um Verbindungsprobleme zu beheben, die SICH auf SQL, SSRS und SSAS auswirken, stellen Sie eine Verbindung mit dem Zielcomputer (der den Dienst hosten) mithilfe eines Domänenbenutzerkontos her, das über Administratorberechtigungen für diesen Computer verfügt.

Optional: Wenn Sie das Tool verwenden möchten, um alle SPN-Probleme zu beheben, die durch das Tool identifiziert werden, sollte das Domänenkonto über die Berechtigung " Validated write to service principle name" verfügen .

Verwenden des Tools

Starten Sie nach Abschluss der Installation die KerberosConfigMgr.exe Binärdatei, indem Sie zum Installationsordner navigieren. Standardmäßig lautet der Speicherort "C:\Program Files\Microsoft\Kerberos Configuration Manager for SQL Server".

Informationen zum Starten einer App als Administrator oder einem anderen Benutzer finden Sie unter "Ausführen verwenden", um eine App als Administrator zu starten.

Verwenden Sie eine der folgenden Optionen, um mit der Problembehandlung zu beginnen:

  • Um eine Verbindung mit einem Remotecomputer SQL Server herzustellen, geben Sie die entsprechenden Werte für Servername, Domänenbenutzername und Kennwort ein.

    Hinweis

    Das Kerberos Configuration Manager-Tool verwendet eine Windows-API, um Informationen zur Kerberos-Konfiguration für den SQL Server Computer abzufragen und anzuzeigen. Geben Sie daher immer den Namen des Computers ein, auf dem die SQL Server Instanz gehostet wird, auch wenn Sie Kerberos-bezogene Probleme für eine benannte Instanz behandeln.

  • Um eine Verbindung mit einem lokalen Server herzustellen, wählen Sie "Verbinden " aus, um Ihre Kerberos-Konfiguration zu analysieren. In diesem Fall müssen Sie weder den Servernamen noch den Domänenbenutzernamen oder das Kennwort angeben.

    Hinweis

    Das Konto, das das Tool startet, sollte ein lokales Administratorkonto sein. Informationen zum Starten einer App als Administrator oder einem anderen Benutzer finden Sie unter "Ausführen verwenden", um eine App als Administrator zu starten.

Nachdem die Verbindung erfolgreich hergestellt wurde, werden alle zugehörigen SPNs im folgenden Screenshot angezeigt.

Screenshot einer Ansicht aller drei Registerkarten in Kerberos Configuration Manager.

In diesem Screenshot verfügt die Benutzeroberfläche über die folgenden Registerkarten:

  • System: Zeigt die Benutzer- und Computerinformationen an.

  • SPN: Zeigt die SPN-Informationen (Service Principal Name) zu den einzelnen SQL Server Instanzen an, die auf dem Zielserver gefunden werden, und stellt Details wie den erforderlichen SPN und dessen Status bereit.

  • Generieren: Hilft Ihnen, fehlende und konfigurierte SPNs zu finden. Es hilft Ihnen auch beim Generieren des SPN-Generierungsskripts.

    1. Wählen Sie "Generieren" aus.
    2. Geben Sie im daraufhin geöffneten Dialogfeld einen Namen an (in diesem Fall "generateSPNss"), legen Sie "Speichern unter" als Datei "Kerberos Config Mgr(.cmd) " fest, und wählen Sie dann " Speichern" aus.

    Dialogfeld zum Angeben eines Namens für die CMD-Datei.

Die Datei generateSPNss.cmd wird erstellt, und Sie können diese Datei an einer Eingabeaufforderung ausführen. Der Inhalt der Datei "generateSPNss.cmd " ähnelt dem folgenden Beispiel:

:: 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** 
  • Verwenden Sie SetSPN, um einen SPN unter dem Dienstkonto für SQL Server zu erstellen.

  • Verwenden Sie Fix , um Probleme zu beheben und SPNs hinzuzufügen. Sie können einen SPN nur hinzufügen, wenn Sie über die erforderlichen Berechtigungen verfügen. Wenn Sie "Korrigieren" auswählen, wird der folgende QuickInfo angezeigt:

    Screenshot der Option &quot;Beheben&quot; zum Hinzufügen von SPN.

    Hinweis

    Das Tool stellt die Befehle "Korrigieren " und "Generieren" nur für Standardinstanzen und benannte Instanzen mit statischen Ports bereit. Für benannte Instanzen, die dynamische Ports verwenden, wird empfohlen, von dynamischen zu statischen Ports zu wechseln oder die erforderlichen Berechtigungen für das Dienstkonto bereitzustellen, um den SPN bei jedem Start des SQL-Diensts zu registrieren und aufzuheben. Andernfalls müssen Sie die Registrierung manuell aufheben und die entsprechenden SPNs erneut registrieren, wenn der Dienst gestartet wird. Weitere Informationen finden Sie unter Registrieren eines Dienstprinzipalnamens für Kerberos-Verbindungen.

  • Delegierung: Verwenden Sie "Delegierung ", um alle Probleme zu identifizieren, die sich auf die Konfiguration des Dienstkontos für die Delegierung auswirken. Dies ist besonders hilfreich bei der Behandlung verknüpfter Serverprobleme. Wenn das SPN-Auschecken z. B. in Ordnung ist, aber weiterhin Probleme auftreten, die sich auf verknüpfte Serverabfragen auswirken, kann dies darauf hindeuten, dass das Dienstkonto nicht so konfiguriert ist, dass Anmeldeinformationen delegiert werden. Weitere Informationen finden Sie im Onlinethema "Bücher " unter "Konfigurieren verknüpfter Server für die Delegierung".

    Screenshot der Registerkarte &quot;Delegierung&quot;.

Interpretation und Reaktion auf die Diagnose der Kerberos-Configuration Manager

Überprüfen Sie die Diagnose des Tools, indem Sie auf die Spalte "Status" verweisen. Führen Sie basierend auf dem Status die entsprechenden Schritte aus, um das Problem zu beheben.

  • Status - Gut

    Weitere Informationen: Das überprüfte Element ist ordnungsgemäß konfiguriert. Wechseln zum nächsten Element in der Ausgabe.

    Aktion: Es ist keine Aktion erforderlich.

  • Status – Erforderlicher SPN fehlt

    Weitere Informationen: Dieser Status wird gemeldet, wenn der Dienstprinzipalname (Service Principal Name, SPN) in der Spalte "Erforderlicher SPN" für das SQL Server Startkonto in Active Directory fehlt.

    Aktion: Führen Sie die folgenden Schritte aus, um zu überprüfen, ob die SPN-Probleme behoben sind:

    1. Wählen Sie "Korrigieren " aus, um die Informationen im Dialogfeld "Warnung " zu überprüfen.
    2. Wählen Sie "Ja " aus, um den fehlenden SPN zu Active Directory hinzuzufügen.
    3. Wenn Ihr Domänenkonto über die erforderlichen Berechtigungen zum Aktualisieren von Active Directory verfügt, wird der erforderliche SPN zu Active Directory hinzugefügt.
    4. Wenn Ihr Domänenkonto nicht über die erforderlichen Berechtigungen zum Aktualisieren von Active Directory verfügt, verwenden Sie "Alle generieren" oder " Alle generieren ", um das Skript zu generieren, das dem Active Directory-Administrator hilft, die fehlenden SPNs hinzuzufügen.
    5. Nachdem die SPNs hinzugefügt wurden, führen Sie Kerberos Configuration Manager erneut aus, um zu überprüfen, ob die SPN-Probleme behoben sind.
  • Status : TCP muss aktiviert sein, um die Kerberos-Konfiguration verwenden zu können.

    Weitere Informationen: Dieser Status wird angezeigt, wenn TCP auf dem Clientcomputer nicht aktiviert ist.

    Aktion: Führen Sie die folgenden Schritte aus, um das TCP/IP-Protokoll für die SQL Server Instanz zu aktivieren:

    1. Erweitern Sie in SQL Server-Konfigurations-Manager - Konsole SQL Server Netzwerkkonfiguration.

    2. Wählen Sie in "Konsole" die Option "Protokolle für" aus <instance name>.

    3. Wählen Sie in "Details" die Option TCP/IP und dann "Aktivieren" aus.

    4. Wählen Sie in der Konsole SQL Server Dienste aus.

    5. Wählen Sie in "Details" SQL Server für aus<instance name>.

    6. Wählen Sie "Neu starten" aus, um den SQL Server Dienst zu beenden und neu zu starten. Weitere Informationen finden Sie im Abschnitt "Aktivieren oder Deaktivieren eines Servernetzwerkprotokolls".

  • Status – Dynamischer Port

    Weitere Informationen: Dieser Status wird für benannte Instanzen angezeigt, die dynamische Ports verwenden (Standardkonfiguration). In Umgebungen, in denen Sie kerberos verwenden müssen, um eine Verbindung mit SQL Server herzustellen, sollten Sie ihre benannte Instanz so festlegen, dass sie einen statischen Port verwendet, und diesen Port verwenden, wenn Sie den SPN registrieren. Andernfalls wird der in Active Directory registrierte SPN ungültig, wenn eine benannte Instanz das nächste Mal beginnt, einen neuen Port zu überwachen, unter dem der SPN registriert wurde.

    Hinweis

    Diese Empfehlung gilt nur für Umgebungen, die von der manuellen SPN-Registrierung abhängig sind.

    Aktion: Führen Sie die folgenden Schritte aus, um die SQL Server Instanz so zu konfigurieren, dass ein statischer Port verwendet wird:

    1. Erweitern Sie in SQL Server-Konfigurations-Manager - Konsole SQL Server Netzwerkkonfiguration, erweitern Sie Protokolle für <instance name>, und doppelklicken Sie dann auf TCP/IP.
    2. Wählen Sie in den TCP/IP-Eigenschaften " Alle überwachen " im Protokoll aus.
    3. Wenn "Alle abhören " auf "Ja" festgelegt ist, wechseln Sie zu "IP-Adressen", und scrollen Sie zum unteren Rand des Fensters, um die Einstellung "IPAll " zu finden.
    4. Löschen Sie den aktuellen Wert in dynamischen TCP-Ports, und geben Sie eine Portnummer in den TCP-Port ein.
    5. Wählen Sie "OK" aus, und starten Sie dann die SQL Server Instanz neu. Weitere Informationen finden Sie unter Konfigurieren eines Servers zum Überwachen eines bestimmten TCP-Ports.
    6. Wenn "Alle abhören " auf "Nein" festgelegt ist, wechseln Sie zu "IP-Adressen", und überprüfen Sie jede IP-Adresse, die auf den IP1- und IP2-Knoten angezeigt wird. Entfernen Sie für Adressen, die auf "Aktiviert" festgelegt sind, den aktuellen Wert in dynamischen TCP-Ports, und legen Sie dann einen Wert im TCP-Port fest.
    7. Wählen Sie "OK" aus, und starten Sie dann die SQL Server Instanz neu, damit die Einstellungen wirksam werden. Weitere Informationen finden Sie unter Konfigurieren eines Servers zum Überwachen eines bestimmten TCP-Ports.
  • Status – SPN duplizieren

    Weitere Informationen: Dieses Szenario kann auftreten, wenn derselbe SPN unter verschiedenen Konten in Active Directory registriert ist.

    Aktionen: Führen Sie die folgenden Schritte aus, um einen SPN zu Active Directory hinzuzufügen:

    1. Wählen Sie "Korrigieren" aus.

    2. Überprüfen Sie die Informationen im Dialogfeld "Warnung ".

    3. Wählen Sie "Ja " aus, um den fehlenden SPN zu Active Directory hinzuzufügen.

      • Wenn Ihr Domänenkonto über die erforderlichen Berechtigungen zum Aktualisieren von Active Directory verfügt, wird der falsche SPN gelöscht.

      • Wenn Ihr Domänenkonto nicht über die erforderlichen Berechtigungen zum Aktualisieren von Active Directory verfügt, verwenden Sie "Generieren " oder " Alle generieren ", um das erforderliche Skript zu generieren, das Sie Ihrem Active Directory-Administrator bereitstellen können, um die doppelten SPNs zu entfernen.

    4. Nachdem die SPNs entfernt wurden, führen Sie Kerberos Configuration Manager erneut aus, um zu überprüfen, ob die SPN-Probleme behoben sind.

    Hinweis

    Wenn eine Instanz des SQL Server-Datenbankmoduls gestartet wird, versucht SQL Server, den SPN für den SQL Server-Dienst zu registrieren. Wenn die Instanz beendet wird, versucht SQL Server, die Registrierung des SPN aufzuheben. Dazu benötigt das SQL Server-Dienstkonto die entsprechenden Berechtigungen in Active Directory. Wenn das Dienstkonto jedoch nicht über diese Rechte verfügt, erfolgt die automatische SPN-Registrierung nicht, und Sie müssen mit Ihrem Active Directory-Administrator zusammenarbeiten, um diese SPNs zu registrieren, damit die SQL-Instanzen die Kerberos-Authentifizierung aktivieren können. Weitere Informationen finden Sie unter Registrieren eines Dienstprinzipalnamens für Kerberos-Verbindungen.

    Hinweis

    In Umgebungen, in denen SQL gruppiert ist, wird die automatische Registrierung von SPNs nicht empfohlen, da das Aufheben der Registrierung des SPN und das erneute Registrieren des SPN in Active Directory möglicherweise länger dauert als die Zeit, die SQL Server benötigt, um online zu sein. Wenn die SPN-Registrierung nicht rechtzeitig erfolgt, kann dies SQL Server daran hindern, online zu gehen, da der Clusteradministrator keine Verbindung mit der SQL Server Instanz herstellen kann.

Weitere Optionen

So generieren Sie die SPN-Liste über die Befehlszeile:

  1. Wechseln Sie zur Befehlszeile.

    Hinweis

    Um ein Verbindungsproblem zu beheben, das SSRS betrifft, öffnen Sie ein administratives Eingabeaufforderungsfenster.

  2. Wechseln Sie zu dem Ordner, derKerberosConfigMgr.exe enthält.

  3. KerberosConfigMgr.exe -q -l eingeben.

  4. Wenn Sie weitere Befehlszeilenoptionen anzeigen möchten, geben Sie KerberosConfigMgr.exe -hein.

So speichern Sie die Kerberos-Konfigurationsinformationen eines Servers:

  1. Stellen Sie eine Verbindung mit dem Windows-Zielserver her.
  2. Wählen Sie Speichern.
  3. Geben Sie den Speicherort an, an dem die Datei gespeichert werden soll. Es kann sich auf einem lokalen Laufwerk oder einer Netzwerkfreigabe befinden. Die Datei wird im format.xml gespeichert.

So zeigen Sie die Kerberos-Konfigurationsinformationen eines Servers aus der gespeicherten Datei an:

  1. Wählen Sie "Laden" aus.
  2. Öffnen Sie die XML-Datei, die von Kerberos Configuration Manager generiert wird.

So zeigen Sie die Protokolldateien für dieses Tool an:

Standardmäßig wird bei jeder Ausführung der Anwendung in Ihrem Anwendungsdatenordner eine Protokolldatei generiert: %APPDATA%\Microsoft\KerberosConfigMgr.

Um Hilfe zu erhalten, verwenden Sie eine der folgenden Methoden:

  • Zeigen Sie mit dem Mauszeiger auf den Befehl, um eine QuickInfo zu generieren.
  • Führen Sie KerberosConfigMgr.exe -h die Ausführung an der Eingabeaufforderung aus.
  • Wählen Sie die Schaltfläche "Hilfe " auf der Symbolleiste aus.

Siehe auch