Utiliser Kerberos Configuration Manager pour diagnostiquer les problèmes Kerberos dans SQL Server

S'applique à : SQL Server

Numéro de base de connaissances d’origine : 2985455

Summary

Utilisez Configuration Manager Kerberos pour SQL Server pour diagnostiquer et résoudre les problèmes de configuration Kerberos qui provoquent des défaillances de connexion SQL Server. L’outil analyse les instances de SQL Server, de SQL Server Reporting Services (SSRS) et de SQL Server Analysis Services (SSAS), et signale les noms de principal de service (SPN) manquants ou en double, ainsi que les problèmes de délégation. Il peut également générer un script ou appliquer le correctif pour vous. Cet article explique comment télécharger l’outil, les autorisations dont il a besoin et comment interpréter sa sortie.

Note

Kerberos Configuration Manager est fourni en l’état, et aucune prise en charge technique ni mise à jour n’est proposée pour celui-ci. Il n'a pas été mis à jour pour utiliser le fournisseur WMI (Windows Management Instrumentation) pour SQL Server 2022 et versions ultérieures. Pour résoudre et diagnostiquer les problèmes de configuration Kerberos pour ces versions, utilisez SQLCheck.

Ce que fait Kerberos Configuration Manager

Kerberos Configuration Manager peut effectuer les tâches suivantes :

  • Collectez des informations sur le système d’exploitation, les instances SQL Server et les listeners de groupe de disponibilité Always On installés sur un serveur.
  • Signalez toutes les configurations spN et de délégation sur le serveur.
  • Identifiez les problèmes potentiels dans les SPN et les délégations.
  • Corrigez les problèmes potentiels de SPN.

Erreurs que Kerberos Configuration Manager aide à résoudre

Utilisez cet outil pour résoudre les erreurs suivantes :

Avant de commencer la résolution des problèmes, passez en revue les prérequis et la liste de contrôle pour résoudre les erreurs de connectivité.

Si vous avez un accès administrateur à l’ordinateur SQL Server, vous pouvez également exécuter SQLCheck (outil de vérification des paramètres de connectivité SQL) sur cet ordinateur. Passez en revue sa sortie pour vérifier la configuration spN de votre instance de SQL Server.

Télécharger le Gestionnaire de configuration Kerberos

Téléchargez l’outil à partir du Centre de téléchargement Microsoft :

Microsoft Gestionnaire de configuration Kerberos pour SQL Server.

Vous pouvez télécharger et installer l’outil sur n’importe quel ordinateur de votre domaine qui peut se connecter à l’ordinateur SQL Server. Veillez à passer en revue les versions prises en charge et la configuration système requise sur la page du Centre de téléchargement.

Autorisations requises pour exécuter Kerberos Configuration Manager

Pour résoudre les problèmes de connectivité qui affectent SQL Server, SSRS et SSAS, connectez-vous à l’ordinateur de destination (l’ordinateur qui héberge le service) à l’aide d’un compte d’utilisateur de domaine disposant d’autorisations d’administration sur cet ordinateur.

Facultatif : Si vous souhaitez utiliser l’outil pour résoudre les problèmes SPN qu’il identifie, le compte de domaine doit disposer de l’autorisation d’écriture validée sur le nom du principal de service.

Démarrez Kerberos Configuration Manager et connectez-vous à un serveur

Une fois l’installation terminée, exécutez le fichier binaire KerberosConfigMgr.exe depuis le dossier d’installation. Par défaut, l’emplacement est C :\Program Files\Microsoft\Kerberos Configuration Manager pour SQL Server.

Pour plus d’informations sur le démarrage d’une application en tant qu’administrateur ou en tant qu’un autre utilisateur, consultez Utiliser Exécuter pour démarrer une application en tant qu’administrateur.

Utilisez l’une des options suivantes pour vous connecter :

  • Connectez-vous à un ordinateur SQL Server distant : entrez les valeurs appropriées pour le nom du serveur, le nom d’utilisateur de domaine et le mot de passe.

    Note

    L’outil utilise une API Windows pour interroger et afficher les informations de configuration Kerberos pour l’ordinateur SQL Server. Entrez toujours le nom de l'ordinateur qui héberge l'instance de SQL Server, même si vous résolvez les problèmes liés à Kerberos pour une instance nommée.

  • Connectez-vous à un serveur local : sélectionnez Se connecter pour analyser votre configuration Kerberos. Vous n’avez pas besoin de spécifier le nom du serveur, le nom d’utilisateur de domaine ou le mot de passe.

    Note

    Le compte qui démarre l’outil doit être un compte d’administrateur local. Pour plus d’informations sur la façon de démarrer une application en tant qu’administrateur ou sous un autre compte utilisateur, consultez Utiliser Exécuter pour démarrer une application en tant qu’administrateur.

Onglets et commandes dans kerberos Configuration Manager

Une fois la connexion établie, l’outil affiche tous les SPN associés, comme illustré dans la capture d’écran suivante.

Capture d’écran d’une vue des trois onglets dans Kerberos Configuration Manager.

L’outil comporte les onglets suivants :

  • Système : affiche les informations utilisateur et les informations de l’ordinateur.
  • SPN : affiche les informations SPN sur chaque instance de SQL Server que l’outil trouve sur le serveur cible. Il fournit également des détails tels que le SPN requis et son état. Chaque ligne comporte des boutons Générer et Corriger.
  • Délégation : identifie les problèmes qui affectent la configuration du compte de service pour la délégation.

Générer un script de génération SPN

Utilisez Generate sous l’onglet SPN pour rechercher les noms de principal de service manquants et créer un script que vous pouvez exécuter à l’invite de commandes :

  1. Dans l’onglet SPN, dans la colonne Script SPN, sélectionnez Générer pour le SPN pour lequel vous souhaitez générer un script.

  2. Dans la boîte de dialogue qui s’ouvre, fournissez un nom (dans cet exemple, generateSPNss), définissez Save as type sur Kerberos Config Mgr (.cmd), puis sélectionnez Enregistrer.

    Capture d’écran de la boîte de dialogue pour fournir un nom pour le fichier CMD.

L’outil crée le fichier generateSPNss.cmd . Le contenu du fichier ressemble à l’exemple suivant :

:: 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**

Utilisez SetSPN pour créer un SPN sous le compte de service pour SQL Server.

Résoudre les problèmes de SPN

Sous l’onglet SPN, utilisez Fix pour résoudre les problèmes et ajouter des noms de principal de service. Vous pouvez ajouter un SPN uniquement si vous disposez des autorisations requises. Lorsque vous sélectionnez Corriger, l’outil affiche l’info-bulle suivante :

Capture d’écran de l’option Corriger pour ajouter un SPN.

Note

L’outil fournit les commandes Fix et Generate uniquement pour les instances par défaut et les instances nommées qui ont des ports statiques. Pour les instances nommées qui utilisent des ports dynamiques, nous vous recommandons de passer d’un port dynamique à des ports statiques ou de fournir au compte de service les autorisations d’enregistrer et de désenregistrer le SPN chaque fois que le service SQL Server démarre. Sinon, vous devez désinscrire manuellement et réinscrire les SPNs correspondants chaque fois que le service démarre. Pour plus d’informations, consultez Enregistrer un nom principal de service pour les connexions Kerberos.

Vérifier les paramètres de délégation

Utilisez la délégation pour identifier les problèmes qui affectent la configuration du compte de service pour la délégation. Cette option est particulièrement utile pour résoudre les problèmes liés au serveur de liaison. Par exemple, si la vérification spN réussit mais que les requêtes de serveur lié échouent toujours, le compte de service peut ne pas être configuré pour déléguer les informations d’identification. Pour plus d’informations, consultez Serveurs liés (Moteur de base de données) et Problèmes de connectivité avec les serveurs liés dans SQL Server authentification.

Capture d’écran de l’onglet Délégation.

Interpréter et agir sur le diagnostic du Gestionnaire de configuration Kerberos

Passez en revue le diagnostic de l’outil en vérifiant la colonne État . En fonction de l’état, suivez les étapes appropriées pour résoudre le problème. Les sections suivantes décrivent chaque état.

Statut : Bon

Plus d’informations : l’élément vérifié est configuré correctement. Accédez à l’élément suivant dans la sortie générée.

Action : aucune action n’est requise.

État : le SPN requis est manquant

Plus d'informations : cet état s'affiche si le spN répertorié dans la colonne SPN obligatoire est manquant pour le compte de démarrage SQL Server dans Active Directory.

Action : procédez comme suit pour ajouter le SPN manquant et vérifier que le problème est résolu :

  1. Sélectionnez Corriger pour passer en revue les informations dans la boîte de dialogue Avertissement.
  2. Sélectionnez Oui pour ajouter le SPN manquant à Active Directory.
    • Si votre compte de domaine dispose des autorisations nécessaires pour mettre à jour Active Directory, l’outil ajoute le SPN requis à Active Directory.
    • Si votre compte de domaine ne dispose pas des autorisations nécessaires pour mettre à jour Active Directory, utilisez Générer ou Générer tout pour générer un script qui aide l’administrateur Active Directory à ajouter les noms de principal de service manquants.
  3. Une fois les SPN ajoutés, réexécutez Kerberos Configuration Manager pour vérifier que les problèmes spN sont résolus.

État : le protocole TCP doit être activé pour utiliser la configuration Kerberos

Plus d’informations : cet état s’affiche si TCP n’est pas activé sur l’ordinateur client.

Action : procédez comme suit pour activer le protocole TCP/IP pour l’instance SQL Server :

  1. Dans Gestionnaire de configuration SQL Server - Console, développez Configuration réseau SQL Server.
  2. Dans Console, sélectionnez Protocoles pour <instance name>.
  3. Dans Détails, sélectionnez TCP/IP, puis Activer.
  4. Dans Console, sélectionnez SQL Server Services.
  5. Dans Détails, sélectionnez SQL Server pour <instance name>.
  6. Sélectionnez Redémarrer pour arrêter et redémarrer le service SQL Server. Pour plus d’informations, consultez la section « Activer ou désactiver un protocole réseau de serveur » dans Activer ou désactiver un protocole réseau de serveur.

Statut : port dynamique

Plus d’informations : cet état s’affiche pour les instances nommées qui utilisent des ports dynamiques (configuration par défaut). Dans les environnements où vous avez besoin de Kerberos pour vous connecter à SQL Server, définissez votre instance nommée pour utiliser un port statique et utilisez ce port lorsque vous enregistrez le SPN. Dans le cas contraire, le SPN inscrit dans Active Directory devient non valide la prochaine fois que l'instance nommée commence à écouter sur un autre port.

Note

Cette recommandation s’applique uniquement aux environnements qui dépendent de l’inscription manuelle du SPN.

Action : procédez comme suit pour configurer l’instance SQL Server pour utiliser un port statique :

  1. Dans Gestionnaire de configuration SQL Server - Console, développez Configuration réseau SQL Server, développez Protocoles pour <instance name>, puis double-cliquez sur TCP/IP.
  2. Dans propriétés TCP/IP, sélectionnez Écouter tout sous l’onglet Protocole .
  3. Si Listen All est définie sur Oui, basculez vers IP Addresses et faites défiler jusqu’au bas de la fenêtre pour rechercher le paramètre IPAll.
  4. Supprimez la valeur actuelle dans TCP Dynamic Ports et entrez un numéro de port dans TCP Port.
  5. Sélectionnez OK, puis redémarrez l’instance SQL Server. Pour plus d’informations, consultez Configurer un serveur pour écouter sur un port TCP spécifique.
  6. Si l’option Écouter tout est définie sur Non, basculez vers Adresses IP et vérifiez chaque adresse IP qui apparaît dans les nœuds IP1 et IP2. Pour les adresses définies sur Activé, supprimez la valeur actuelle dans Ports TCP dynamiques, puis définissez une valeur dans Port TCP.
  7. Sélectionnez OK, puis redémarrez l’instance SQL Server pour que les paramètres prennent effet. Pour plus d’informations, consultez Configurer un serveur pour écouter sur un port TCP spécifique.

Statut : SPN dupliqué

Plus d’informations : cet état s’affiche si le même SPN est inscrit sous différents comptes dans Active Directory.

Action : procédez comme suit pour supprimer le SPN dupliqué d’Active Directory :

  1. Sélectionnez Corriger.
  2. Vérifiez les informations de la boîte de dialogue Avertissement.
  3. Sélectionnez Oui pour supprimer le spN incorrect de Active Directory.
    • Si votre compte de domaine dispose des autorisations nécessaires pour mettre à jour Active Directory, l’outil supprime le spN incorrect.
    • Si votre compte de domaine ne dispose pas des autorisations nécessaires pour mettre à jour Active Directory, utilisez Générer ou Tout générer pour générer un script que vous pouvez donner à votre administrateur Active Directory pour supprimer les spN dupliqués.
  4. Une fois les SPN supprimés, réexécutez Kerberos Configuration Manager pour vérifier que les problèmes de SPN sont résolus.

Note

Lors du démarrage d’une instance du Moteur de base de données SQL Server, SQL Server tente d’enregistrer le SPN pour le service SQL Server. Lorsque l’instance s’arrête, SQL Server tente d’annuler l’enregistrement du SPN. Pour que ce processus se produise, le compte de service SQL Server nécessite les autorisations appropriées dans Active Directory. Si le compte de service ne dispose pas de ces droits, l’inscription SPN automatique ne se produit pas. Dans ce cas, collaborez avec votre administrateur Active Directory pour enregistrer les SPN (noms de principal de service) afin que les instances de SQL Server puissent utiliser l’authentification Kerberos. Pour plus d’informations, consultez Enregistrer un nom principal de service pour les connexions Kerberos.

Note

Dans les environnements où SQL Server est en cluster, l'inscription automatique des SPN n'est pas recommandée. Cela peut prendre plus de temps de désinscrire et de réinscrire le SPN dans Active Directory qu’il n’en faut à SQL Server pour être mis en ligne. Si l'inscription SPN ne se produit pas à temps, SQL Server risque de ne pas être en ligne, car l'administrateur du cluster ne peut pas se connecter à l'instance de SQL Server.

Options supplémentaires dans le gestionnaire de configuration Kerberos

Générer la liste SPN à partir de la ligne de commande

  1. Ouvrez une invite de commande. Pour résoudre les problèmes de connectivité qui affectent SSRS, ouvrez une fenêtre d’Invite de commandes en tant qu’administrateur.
  2. Basculez vers le dossier qui contient KerberosConfigMgr.exe.
  3. Saisissez KerberosConfigMgr.exe -q -l.
  4. Pour plus d’options de ligne de commande, entrez KerberosConfigMgr.exe -h.

Enregistrer la configuration Kerberos d’un serveur

  1. Connectez-vous au serveur Windows cible.
  2. Sélectionnez Enregistrer.
  3. Spécifiez où enregistrer le fichier. Choisissez un lecteur local ou un partage réseau. L’outil enregistre le fichier au format .xml .

Afficher une configuration Kerberos enregistrée

  1. Sélectionnez Charger.
  2. Ouvrez le fichier XML généré par Kerberos Configuration Manager généré.

Afficher les fichiers journaux de l’outil

Par défaut, l’outil génère un nouveau fichier journal chaque fois que vous exécutez l’application. Vous trouverez les fichiers journaux dans votre dossier de données d’application : %APPDATA%\Microsoft\KerberosConfigMgr.

Obtenir de l’aide

Utilisez l’une des méthodes suivantes :

  • Placez le pointeur de la souris sur une commande pour afficher une info-bulle.
  • Exécutez KerberosConfigMgr.exe -h dans l’invite de commandes.
  • Sélectionnez le bouton Aide dans la barre d’outils.