L’erreur 1069 se produit lorsque vous démarrez le service SQL Server

Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 282254

Summary

L’erreur 1069 : « Le service n’a pas démarré en raison d’un échec de l’ouverture de session » se produit lorsque le service SQL Server ou SQL Server Agent ne peut pas se connecter à l’aide de son compte de service configuré. Cet article explique comment résoudre l’erreur 1069 lorsque les entrées du journal des événements système affichent l’ID d’événement 7041 du Gestionnaire de contrôle des services ou l’ID d’événement 7038. Les causes incluent l’absence du droit « Se connecter en tant que service », un compte désactivé ou verrouillé, un mot de passe expiré ou incorrect et un domaine qui n’est pas accessible au démarrage.

Symptômes

Lorsque vous essayez de redémarrer Microsoft SQL Server ou l’Agent SQL Server, le service ne démarre pas et vous recevez les messages d’erreur suivants, selon la façon dont vous essayez de démarrer le service :

  • À l’aide de l’applet Services :

    Windows n’a pas pu démarrer le service SQL Server sur l’ordinateur local.
    Erreur 1069 : le service n’a pas démarré en raison d’un échec d’ouverture de session.

  • À l’aide d’une invite de commandes :

    L’erreur système 1069 s’est produite.
    Le service n’a pas démarré en raison d’un échec de l’ouverture de session.

Vous pouvez trouver des messages avec l’ID d’événement 7041 ou 7038 enregistrés dans le journal des événements système.

Cause

Ce problème se produit parce qu’il existe un problème avec le compte de service lui-même ou les informations actuellement enregistrées pour le compte de service.

Quelle résolution s’applique à votre ID d’événement

Utilisez l’ID d’événement et le texte d’erreur dans le journal des événements système pour sélectionner la résolution :

ID de l’événement Texte d’erreur dans l’événement Résolution
7041 Échec d’ouverture de session : l’utilisateur n’a pas d’autorisation pour le type d’ouverture de session demandé sur cet ordinateur Résolution de l’ID d’événement 7041
7038 Cet utilisateur ne peut pas se connecter, car ce compte est actuellement désactivé. Le compte est désactivé
7038 Le mot de passe de l’utilisateur doit être modifié avant de se connecter. Le mot de passe doit être modifié
7038 Le nom d'utilisateur ou le mot de passe est incorrect. Mot de passe incorrect ou indicateur gMSA
7038 Le compte référencé est actuellement verrouillé et il est impossible de s’y connecter. Le compte est verrouillé
7038 Le domaine spécifié n’existe pas ou n’a pas pu être contacté. Impossible de contacter le domaine

Résolution de l’ID d’événement 7041

L’entrée avec l’ID d’événement 7041 dans le journal des événements système peut contenir le message d’erreur suivant :

Échec d’ouverture de session : l’utilisateur n’a pas d’autorisation pour le type d’ouverture de session demandé sur cet ordinateur

L’entrée de message complète dans le journal des événements ressemble à la suivante :

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7041
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as NT Service\MSSQLSERVER with the currently configured password due to the following error:
Logon failure: the user has not been granted the requested logon type at this computer.

Service: MSSQLSERVER  
Domain and account: <AccountName>

This service account does not have the required user right "Log on as a service."

User Action

Assign "Log on as a service" to the service account on this computer. You can use Local Security Settings (Secpol.msc) to do this.
If this computer is a node in a cluster, check that this user right is assigned to the Cluster service account on all nodes in the cluster.

If you have already assigned this user right to the service account, and the user right appears to be removed,
check with your domain administrator to find out if a Group Policy object associated with this node might be removing the right.

Pour résoudre ce problème, vérifiez quels droits utilisateur sont attribués au compte de service SQL Server.

  1. Démarrez le composant logiciel enfichable Stratégie de sécurité locale (secpol.msc).

  2. Développez Stratégies locales , puis sélectionnez Attribution des droits utilisateur.

  3. Vérifiez que les droits utilisateur requis sont attribués au compte de service en suivant les instructions de Privilèges et droits Windows. Attribuez manuellement les autorisations manquantes.

  4. Vérifiez si le compte de service se voit attribuer des droits utilisateur Refuser. Supprimez tous les droits utilisateur « Refuser » du compte de service SQL Server, puis retestez.

    Par exemple, si le compte de service s’est vu attribuer Refuser l’ouverture d’une session en tant que serviceSeDenyServiceLogonRight ainsi que Ouvrir une session en tant que serviceSeServiceLogonRight, révoquez pour ce compte le SeDenyServiceLogonRight droit d’ouverture de session, puis redémarrez SQL Server.

Résolution de l’ID d’événement 7038

Dans les entrées de journal liées à l’ID d’événement 7038, vous pouvez trouver les messages d’erreur suivants :

Cet utilisateur ne peut pas se connecter, car ce compte est actuellement désactivé

L’entrée de message complète dans le journal des événements ressemble à la suivante :

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
This user can't sign in because this account is currently disabled.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Pour résoudre ce problème, utilisez l’une des méthodes suivantes en fonction de votre scénario :

  • Si le compte de démarrage de SQL Server est un compte d’utilisateur local sur l’ordinateur, ouvrez Gestion de l’ordinateur (compmgmt.msc) et vérifiez si le compte de service est désactivé dans les utilisateurs et groupes locaux. S’il est désactivé, activez le compte et redémarrez le service SQL Server.

  • Si le compte de démarrage de SQL Server est un compte de domaine Windows, vérifiez si le compte est désactivé dans Utilisateurs et ordinateurs Active Directory. S’il est désactivé, activez le compte et redémarrez le service SQL Server.

Le mot de passe de l’utilisateur doit être modifié avant de se connecter

L’entrée de message complète dans le journal des événements ressemble à la suivante :

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
The user's password must be changed before signing in.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Pour résoudre ce problème, utilisez l’une des méthodes suivantes en fonction de votre scénario :

  • Si le compte de démarrage SQL Server est un compte d’utilisateur local sur l’ordinateur :

    1. Ouvrez Gestion de l’ordinateur (compmgmt.msc).
    2. Sélectionnez Utilisateurs et groupes locaux, puis sélectionnez Utilisateurs pour localiser le compte.
    3. Double-cliquez sur le compte d’utilisateur pour ouvrir ses Propriétés.
    4. Décochez la propriété L’utilisateur doit changer de mot de passe à la prochaine ouverture de session pour le compte de démarrage de SQL Server, puis sélectionnez OK.
    5. Redémarrez le service SQL Server.
  • Si le compte de démarrage SQL Server est un compte de domaine Windows :

    1. Ouvrez Utilisateurs et ordinateurs Active Directory sur un contrôleur de domaine.
    2. Sélectionnez Utilisateurs dans le domaine correct.
    3. Double-cliquez sur le compte de domaine que vous utilisez comme compte de service SQL Server pour ouvrir ses propriétés.
    4. Accédez à l’onglet Compte pour vérifier si L’utilisateur doit changer le mot de passe à la prochaine ouverture de session est activé. Si l’option est activée, désactivez cette option ou connectez-vous de manière interactive à une machine cliente Windows, puis définissez un nouveau mot de passe.
    5. Si vous avez modifié le mot de passe, mettez à jour le nouveau mot de passe pour le service SQL Server à l’aide de l’outil Gestionnaire de configuration SQL Server.

Le nom d'utilisateur ou le mot de passe est incorrect

Pour un problème de mot de passe incorrect, l’entrée de message complète dans le journal des événements ressemble à l’entrée suivante :

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
The user name or password is incorrect.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Pour résoudre ce problème, effectuez les étapes suivantes :

Scénario 1 : Mot de passe incorrect

L’entrée de message d’erreur indique que le nom d’utilisateur actuel ou le mot de passe est incorrect. Pour vérifier et résoudre le problème, procédez comme suit :

  1. Utilisez l’option runas pour tester les informations d’identification du compte de service :

    1. Ouvrez une invite de commandes Windows.

    2. Exécutez la commande suivante :

      runas /user:<localmachine>\<SQLServiceAccount> cmd
      
  2. Si la commande réussit, tapez soigneusement les mêmes informations d’identification dans Gestionnaire de configuration SQL Server, Services, service SQL Server et Ce compte.

  3. Si la commande échoue et signale le même problème, réinitialisez le mot de passe de la connexion Windows.

  4. Si le compte de démarrage SQL Server est un compte d’utilisateur local sur l’ordinateur, ouvrez Gestion de l’ordinateur (compmgmt.msc) et réinitialisez le mot de passe de l’utilisateur local.

  5. Si le compte de démarrage SQL Server est un compte de domaine Windows, ouvrez Utilisateurs et ordinateurs Active Directory, puis mettez à jour le mot de passe du compte sous Utilisateurs. Une fois les informations d’identification mises à jour, revenez au Gestionnaire de configuration SQL Server, services, SQL Server et entrez les mêmes informations d’identification.

  6. Redémarrez le service SQL Server.

    Pour saisir le mot de passe correct pour le compte de service SQL Server sur l’ordinateur hôte SQL Server, suivez les procédures des services SCM : modifiez le mot de passe des comptes utilisés.

Scénario 2 : l’indicateur gMSA IsManagedAccount est défini de manière incorrecte

Si vous utilisez un compte de service managé de groupe (gMSA) pour exécuter le service SQL Server et que lIsManagedAccount'indicateur du service donné est défini sur false, vous pouvez recevoir un ID d'événement Service Control Manager 7038 dès que le secret mis en cache n'est pas valide.

Pour identifier et résoudre le problème, procédez comme suit :

  1. Vérifiez que le compte que vous utilisez est un compte gMSA. Continuez uniquement après avoir confirmé gMSA.

    • Si la commande suivante réussit avec ce compte, vous utilisez un compte gMSA.
    • En cas d’échec avec Cannot find an object with identity: 'account', le compte de service n’est pas un compte gMSA.
    Get-ADServiceAccount -Identity 'yourGmsaName' -Properties PasswordLastSet
    

    Pour plus d’informations, consultez Vérifier le compte gMSA.

  2. Exécutez la commande suivante dans l’invite de commandes et vérifiez l’état de IsManagedAccount. Le résultat souhaité est true. Si c’est faux, continuez.

    sc qmanagedaccount <YourSQLServiceName>
    

    Exemple pour une instance nommée SQL SERVER SQLPROD :

    sc qmanagedaccount MSSQL$SQLPROD
    
  3. Définissez le drapeau sur true selon les besoins.

    sc managedaccount <YourSQLServiceName> TRUE
    

    Exemple pour une instance nommée SQL Server SQLPROD :

    sc managedaccount MSSQL$SQLPROD TRUE
    
  4. Essayez de redémarrer le service.

Pour plus d’étapes de résolution des problèmes spécifiques aux GMSA, consultez Résoudre les problèmes de démarrage de service SQL Server avec des gMSA.

Le compte référencé est actuellement verrouillé et il est actuellement impossible de s’y connecter.

L’entrée de message complète dans le journal des événements ressemble à la suivante :

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as .\sqlsrvlogin with the currently configured password due to the following error:
The referenced account is currently locked out and may not be logged on to.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Pour résoudre ce problème, utilisez l’une des méthodes suivantes en fonction de votre scénario :

  • Si le compte de démarrage SQL Server est un compte d’utilisateur local sur l’ordinateur :

    1. Ouvrez Gestion de l’ordinateur (compmgmt.msc) et accédez aux Utilisateurs et groupes locaux. Sélectionnez ensuite Utilisateurs.
    2. Désactivez la case à cocher Le compte est verrouillé pour le compte de démarrage SQL Server sous Utilisateurs et groupes locaux, puis sélectionnez OK.
    3. Redémarrez le service SQL Server.
  • Si le compte de démarrage SQL Server est un compte de domaine Windows :

    1. Ouvrez Utilisateurs et ordinateurs Active Directory sur le contrôleur de domaine.
    2. Sous Utilisateurs, double-cliquez sur le compte de démarrage SQL Server et accédez à l’onglet Compte .
    3. Vérifiez si le compte est marqué comme verrouillé.
    4. Si le compte est verrouillé, activez la case à cocher Déverrouiller le compte , puis sélectionnez OK. Définissez un mot de passe fort.
    5. Utilisez ensuite les mêmes informations d’identification pour la configuration du compte de service SQL Server dans Gestionnaire de configuration SQL Server, Services et SQL Server.
    6. Redémarrez le service SQL Server.

Le domaine spécifié n’existe pas ou n’a pas pu être contacté

L’entrée de message complète dans le journal des événements ressemble à la suivante :

Log Name:      System
Source:        Service Control Manager
Date:          <Datetime>
Event ID:      7038
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      <Server name>
Description:
The MSSQLSERVER service was unable to log on as xxx with the currently configured password due to the following error:
The specified domain either does not exist or could not be contacted.

To ensure that the service is configured properly, use the Services snap-in in Microsoft Management Console (MMC).

Pour résoudre ce problème, utilisez l’une des méthodes suivantes en fonction de votre scénario :

  • Configurez le démarrage de SQL Server en démarrage différé pour des serveurs Windows particuliers, ce qui garantit que d’autres services Windows tels que Netlogon se terminent en premier et SQL Server démarre sans problème. Il s’agit de la configuration par défaut du programme d’installation SQL à partir de SQL Server 2022.

  • Si l'option de démarrage retardée ne résout pas le problème pour votre scénario, modifiez les options de récupération pour les services SQL Server. Spécifiez « Redémarrer le service » comme action pour les options d’échec. Exécutez cette opération à partir de l’applet Services des outils d’administration à l’aide des interfaces Service Control Manager familières.

    • Cette option n’est pas recommandée pour les instances de cluster de basculement SQL (FCI) ou les groupes de disponibilité (AG), car cela peut entraîner des retards pendant les scénarios de basculement automatique.
  • Si aucune des options précédentes n’est possible, configurez le service SQL Server pour avoir une dépendance sur le service Netlogon en exécutant la commande suivante dans une console de ligne de commande avec élévation de privilèges :

    sc config <YourSQLServiceName> depend=keyiso/netlogon
    

    Exemple pour une instance nommée SQL SERVER SQLPROD :

    sc config MSSQL$SQLPROD depend=keyiso/netlogon