Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server sur Windows
Résumé
Cet article vous aide à résoudre les échecs d’authentification Kerberos, de serveur lié et de groupe de disponibilité lorsque SQL Server s’exécute sous un compte de service administré de groupe (gMSA). Ces échecs ont les mêmes causes, que le compte de service soit un compte d’utilisateur gMSA ou un compte d’utilisateur de domaine. Pour un chemin de diagnostic complet, utilisez les références suivantes :
Utilisez les sections suivantes pour connaître les différences qui s’appliquent uniquement aux GMSA, telles que la propriété du nom de principal de service (SPN), la délégation et les autorisations de point de terminaison.
Avant de commencer, passez en revue les prérequis et exécutez la liste de contrôle de validation rapide dans Résoudre les problèmes d’installation, de démarrage et d’authentification de SQL Server avec des gMSA.
Échecs Kerberos ou SPN
Vérifier les SPN du compte gMSA
Répertoriez les SPN avec la forme de nom du compte d’ordinateur. Un gMSA est un objet de type ordinateur ; le nom du compte doit donc se terminer par le signe dollar.
setspn -L CONTOSO\SQLgMSA$ setspn -Q MSSQLSvc/sql01.contoso.com:1433Vérifiez que l’inscription automatique du SPN peut réussir. SQL Server enregistre son SPN au démarrage uniquement si le compte de service peut écrire dans son propre attribut
servicePrincipalName. Si le compte gMSA n'a pas cette autorisation, le journal des erreurs SQL Server signale que le SPN n'a pas pu être inscrit et qu'un administrateur doit l'inscrire manuellement. Pour plus d’informations, consultez Inscrire un nom de principal de service pour les connexions Kerberos.Revérifiez la propriété SPN après la modification d’un compte de service. Les SPN enregistrés sur l’ancien compte restent sur ce compte. Déplacez-les ou supprimez-les afin que le SPN attendu
MSSQLSvcait exactement un seul propriétaire : le gMSA sous lequel SQL Server s’exécute désormais.
Vérifier l’authentification Kerberos pour le gMSA
Exécutez la commande suivante sur le client avant de retester.
klist purgeReconnectez-vous à partir d’une session Windows distante authentifiée et exécutez la requête suivante.
SELECT c.auth_scheme, c.net_transport, c.client_net_address FROM sys.dm_exec_connections AS c WHERE c.session_id = @@SPID;Résultat attendu : une nouvelle connexion à distance authentifiée par Windows signale
KERBEROS.
Pour les SPN manquants, en double ou mal placés, ainsi que pour Kerberos Configuration Manager, consultez les références suivantes :
- Impossible de générer un contexte SSPI
- SPN explicitement mal positionné
- Utiliser le Configuration Manager Kerberos
Échecs liés à un serveur lié ou à un double saut
Un serveur lié qui utilise le contexte de sécurité actuel échoue avec NT AUTHORITY\ANONYMOUS LOGON lorsque le second saut ne peut pas déléguer l’identité de l’utilisateur. Vous avez besoin de SPN corrects, mais ils n’activent pas à eux seuls la deuxième étape.
Vérifier la délégation du gMSA
- Configurez la délégation contrainte sur l’objet gMSA en définissant
msDS-AllowedToDelegateTo, ou en configurant la délégation contrainte en fonction des ressources sur la destination. La délégation configurée sur un compte d’utilisateur ne s’applique pas. - Si vous avez remplacé le compte de service d’un compte d’utilisateur de domaine par un compte gMSA, vérifiez que les paramètres de délégation ont été recréés sur le compte gMSA. La délégation n’est pas transférée avec le SPN.
Vérifiez le premier saut avant d’examiner la délégation.
SELECT ORIGINAL_LOGIN() AS original_login, SUSER_SNAME() AS execution_login, c.auth_scheme
FROM sys.dm_exec_connections AS c
WHERE c.session_id = @@SPID;
Résultat attendu : le premier saut indique KERBEROS.
Pour le parcours de diagnostic complet en double saut, consultez les références suivantes :
- Échec de la connexion pour l’utilisateur NT AUTHORITY\ANONYMOUS LOGON
- Erreurs de connectivité d’un serveur lié dans SQL Server
- Vous ne pouvez pas utiliser la délégation Kerberos non contrainte dans certaines versions de Windows
Échecs d’authentification du réplica du groupe de disponibilité
La connectivité des groupes de disponibilité dépend de l’état du point de terminaison, de l’URL et du port, du pare-feu, du DNS, CONNECT de l’autorisation et de l’authentification de compte de service. Validez ces éléments séparément de Kerberos client et utilisez la preuve SPN uniquement lorsque l’erreur indique spécifiquement Kerberos ou SSPI.
Vérifier les autorisations de point de terminaison pour gMSA
- Accordez
CONNECTsur le point de terminaison de mise en miroir de base de données au compte de connexion gMSA sous la forme[CONTOSO\SQLgMSA$]sur chaque réplique. Une connexion créée pour le compte de service précédent n’autorise pas le compte gMSA. - Si les réplicas fonctionnent sous des gMSA différents, vérifiez que chaque réplica dispose d’un identifiant de connexion et
CONNECTd’une autorisation pour chaque compte de service partenaire.
SELECT ar.replica_server_name, ars.role_desc, ars.connected_state_desc, ars.synchronization_health_desc
FROM sys.availability_replicas AS ar
LEFT JOIN sys.dm_hadr_availability_replica_states AS ars ON ar.replica_id = ars.replica_id;
SELECT name, state_desc, type_desc, port
FROM sys.tcp_endpoints
WHERE type_desc = 'DATABASE_MIRRORING';
Résultat attendu : le point de terminaison est STARTED, le port est accessible et l’état du réplica passe à CONNECTED.
Pour le dépannage des problèmes de point de terminaison, de pare-feu et de connectivité qui ne sont pas spécifiques au compte de service, consultez Le réplica de disponibilité est déconnecté dans un groupe de disponibilité Always On et Résolution des problèmes de configuration des groupes de disponibilité Always On.
Collecter des données de diagnostic
Si l’authentification échoue toujours après avoir effectué ces étapes, collectez les données de diagnostic sur l’hôte SQL Server et de chaque réplica affecté sur la même période d’échec. Pour obtenir les données de preuve spécifiques à gMSA et les journaux d’activité de SQL Server standard à collecter, consultez Collecte des données de diagnostic dans la vue d’ensemble de la résolution des problèmes gMSA. Utilisez ces données pour poursuivre l’enquête ou ouvrir un cas de support.