Se connecter à SQL Server lorsque les administrateurs système n'y ont plus accès

Cette rubrique explique comment récupérer l’accès au moteur de base de données SQL Server en tant qu’administrateur système. Un administrateur système peut perdre l’accès à un instance de SQL Server pour l’une des raisons suivantes :

  • Toutes les connexions qui sont membres du rôle serveur fixe sysadmin ont été supprimées par erreur.

  • Tous les groupes Windows qui sont membres du rôle serveur fixe sysadmin ont été supprimés par erreur.

  • Les connexions membres du rôle serveur fixe sysadmin sont destinées aux personnes qui ont quitté la société ou qui ne sont pas disponibles.

  • Le compte d'administrateur système (sa) est désactivé ou personne ne connaît le mot de passe.

Une façon de récupérer l’accès consiste à réinstaller SQL Server et à attacher toutes les bases de données au nouveau instance. Cette solution demande beaucoup de temps ; par ailleurs, pour récupérer les connexions, il peut s'avérer nécessaire de restaurer la base de données MASTER à partir d'une sauvegarde. Si la sauvegarde de la base de données MASTER est plus ancienne, il est possible qu'elle ne possède pas toutes les informations. Si la sauvegarde de la base de données MASTER est plus récente, elle possède peut-être les mêmes connexions que l'instance précédente ; par conséquent, les administrateurs sont toujours bloqués.

Résolution

Démarrez l’instance de SQL Server en mode mono-utilisateur à l’aide des options -m ou -f. Tout membre du groupe Administrateurs local de l'ordinateur peut se connecter ensuite à l'instance de SQL Server comme membre du rôle serveur fixe sysadmin.

Notes

Lorsque vous démarrez une instance de SQL Server en mode mono-utilisateur, arrêtez d’abord le service SQL Server Agent. Sinon, SQL Server Agent peut se connecter en premier et vous empêcher de vous connecter en tant que deuxième utilisateur.

Lorsque vous utilisez l’option -m avec sqlcmd ou SQL Server Management Studio, vous pouvez limiter les connexions à une application cliente spécifiée. Par exemple, -m"sqlcmd » limite les connexions à une seule connexion et cette connexion doit s’identifier en tant que programme client sqlcmd . Utilisez cette option lorsque vous démarrez SQL Server en mode mono-utilisateur et qu'une application cliente inconnue utilise la seule connexion disponible. Pour vous connecter par le biais de l’éditeur de requête dans Management Studio, utilisez -m"Microsoft SQL Server Management Studio - Query" .

Important

N'utilisez pas cette option comme fonctionnalité de sécurité. L'application cliente fournit le nom d'application cliente et peut fournir un nom erroné dans la chaîne de connexion.

Pour obtenir des instructions pas à pas sur la façon de démarrer SQL Server en mode mono-utilisateur, consultez Configurer les options de démarrage du serveur (Gestionnaire de configuration SQL Server).

Instructions détaillées

Les instructions suivantes décrivent le processus de connexion à SQL Server 2014 s’exécutant sur Windows 8 ou version ultérieure. De légers ajustements sont requis pour les versions antérieures de SQL Server ou Windows. Ces instructions doivent être exécutées lors de la connexion à Windows en tant que membre du groupe Administrateurs locaux, et elles supposent que SQL Server Management Studio est installé sur l’ordinateur.

  1. Dans la page Démarrer, démarrez SQL Server Management Studio. Dans le menu Affichage , sélectionnez Serveurs inscrits. (Si votre serveur n’est pas déjà inscrit, cliquez avec le bouton droit sur Groupes de serveurs locaux, pointez sur Tâches, puis cliquez sur Inscrire les serveurs locaux.)

  2. Dans la zone Serveurs inscrits, cliquez avec le bouton droit sur votre serveur, puis cliquez sur Gestionnaire de configuration SQL Server. Cette opération doit demander une autorisation d'exécution en tant qu'administrateur, puis ouvrir le programme Gestionnaire de configuration.

  3. Fermez Management Studio.

  4. Dans le Gestionnaire de configuration SQL Server , dans le volet gauche, sélectionnez Services SQL Server. Dans le volet droit, recherchez votre instance de SQL Server. (L’instance par défaut de SQL Server inclut (MSSQLSERVER) après le nom de l’ordinateur. Les instances nommées sont affichées en majuscules et portent le même nom que dans la zone Serveurs inscrits.) Cliquez avec le bouton de droite sur l’instance de SQL Server, puis cliquez sur Propriétés.

  5. Sous l’onglet Paramètres de démarrage , dans la zone Spécifier un paramètre de démarrage , tapez -m , puis cliquez sur Add. (Il s'agit d'un trait d'union suivi d'un m minuscule)

    Notes

    Certaines versions antérieures de SQL Server n'ont pas d'onglet Paramètres de démarrage . Dans ce cas, sous l’onglet Avancé , double-cliquez sur Paramètres de démarrage. Les paramètres s'ouvrent dans une fenêtre très petite. Veillez à ne pas modifier les paramètres existants. Tout en bas, ajoutez un nouveau paramètre ;-m, puis cliquez sur OK. (Il s'agit d'un point-virgule, suivi d'un trait d'union et d'un m minuscule.)

  6. Cliquez sur OK, puis après le message à redémarrer, cliquez avec le bouton droit sur le nom de votre serveur, puis cliquez sur Redémarrer.

  7. Une fois SQL Server avez redémarré votre serveur sera en mode mono-utilisateur. Vérifiez que l’Agent SQL Server n’est pas en cours d’exécution. S'il est démarré, il utilise votre unique connexion.

  8. Dans l’écran d’accueil de Windows 8, cliquez avec le bouton droit sur l’icône de Management Studio. Au bas de l'écran, sélectionnez Exécuter en tant qu'administrateur. (Cette opération transfère vos informations d'identification d'administrateur à SSMS.)

    Notes

    Pour les versions antérieures de Windows, l’option Exécuter en tant qu’administrateur apparaît comme sous-menu.

    Dans certaines configurations, SSMS essaie d'établir plusieurs connexions. Les connexions multiples échouent car SQL Server est en mode mono-utilisateur. Vous pouvez sélectionner l'une des opérations suivantes. Procédez de l'une des manières suivantes :

    1. Connectez-vous avec l'Explorateur d'objets en utilisant l'authentification Windows (qui contient vos informations d'identification d'administrateur). Développez Sécurité, Connexions, puis double-cliquez sur votre propre connexion. Dans la page Rôles de serveur , sélectionnez sysadmin, puis cliquez sur OK.

    2. Au lieu de vous connecter avec l'Explorateur d'objets, connectez-vous avec une fenêtre de requête en utilisant l'authentification Windows (qui contient vos informations d'identification d'administrateur). (Vous ne pouvez vous connecter de cette façon que si vous ne vous êtes pas connecté avec Explorateur d'objets.) Exécutez du code tel que le suivant pour ajouter une nouvelle connexion d’authentification Windows qui est membre du sysadmin rôle serveur fixe. L’exemple suivant ajoute un utilisateur de domaine nommé CONTOSO\PatK.

      CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS;  
      ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];  
      
    3. Si votre instance de SQL Server s'exécute en mode d'authentification mixte, connectez-vous avec une fenêtre de requête en utilisant l'authentification Windows (qui inclut vos informations d'identification d'administrateur). Exécutez du code tel que le suivant pour créer une connexion d’authentification SQL Server qui est membre du sysadmin rôle serveur fixe.

      CREATE LOGIN TempLogin WITH PASSWORD = '************';  
      ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;  
      

      Avertissement

      Remplacez ************ par un mot de passe fort.

    4. Si votre SQL Server s’exécute en mode d’authentification mixte et que vous souhaitez réinitialiser le mot de passe du compte, connectez-vous avec une fenêtre de requête à l’aide sa de l’authentification Windows (qui inclut vos informations d’identification d’administrateur). Modifiez le mot de passe du sa compte avec la syntaxe suivante.

      ALTER LOGIN sa WITH PASSWORD = '************';  
      

      Avertissement

      Remplacez ************ par un mot de passe fort.

  9. Les étapes suivantes passent maintenant SQL Server en mode multi-utilisateur. Fermez SSMS.

  10. Dans le Gestionnaire de configuration SQL Server , dans le volet gauche, sélectionnez Services SQL Server. Dans le volet droit, cliquez avec le bouton droit sur l’instance de SQL Server, puis cliquez sur Propriétés.

  11. Sous l’onglet Paramètres de démarrage , dans la zone Paramètres existants , sélectionnez -m , puis cliquez sur Remove.

    Notes

    Certaines versions antérieures de SQL Server n'ont pas d'onglet Paramètres de démarrage . Dans ce cas, sous l’onglet Avancé , double-cliquez sur Paramètres de démarrage. Les paramètres s'ouvrent dans une fenêtre très petite. Supprimez le ;-m que vous avez ajouté précédemment, puis cliquez sur OK.

  12. Cliquez avec le bouton droit sur le nom de votre serveur, puis cliquez sur Redémarrer.

Vous devez maintenant être en mesure de vous connecter normalement à l’un des comptes qui est désormais membre du sysadmin rôle serveur fixe.

Voir aussi

Démarrer SQL Server en mode mono-utilisateur
Options de démarrage du service moteur de base de données