Mode mono-utilisateur pour SQL Server

S’applique à :SQL Server

Cet article fournit des informations et des étapes pour démarrer votre instance SQL Server en mode mono-utilisateur, ce qui permet à un seul utilisateur de se connecter à l’instance.

Démarrer l’instance en mode mono-utilisateur

Le démarrage de SQL Server en mode mono-utilisateur permet aux membres du groupe Administrateurs local de l’ordinateur de se connecter à l’instance de SQL Server en tant que membre du rôle serveur fixe sysadmin. Pour plus d’informations, consultez Se connecter à SQL Server quand les administrateurs système n’y ont plus accès.

Dans certaines circonstances, il peut être nécessaire de démarrer une instance de SQL Server en mode mono-utilisateur en utilisant l’option de démarrage-m. Vous pouvez par exemple vouloir modifier les options de configuration du serveur ou récupérer une base de données master ou une autre base de données système endommagée. Les deux actions requièrent le démarrage d'une instance de SQL Server en mode mono-utilisateur.

L’exemple suivant démarre l’instance SQL Server en mode mono-utilisateur et autorise uniquement la connexion via SQL Server Management Studio Query Editor.

net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"

Pour restaurer une base de données master sur Linux en mode mono-utilisateur, consultez Restaurer la base de données master sur Linux en mode mono-utilisateur.

Considérations d’ordre général

Lorsque vous démarrez une instance de SQL Server en mode mono-utilisateur, notez les éléments suivants :

  • Un seul utilisateur peut se connecter au serveur.

  • Le processus CHECKPOINT n’est pas exécuté. Par défaut, il est exécuté automatiquement au démarrage.

Notes

Arrêtez le service SQL Server Agent avant de vous connecter à une instance de SQL Server en mode mono-utilisateur ; sinon, le service SQL Server Agent utilise cette connexion et, par conséquent, la bloque.

Lorsque vous démarrez une instance de SQL Server en mode mono-utilisateur, SQL Server Management Studio peut se connecter à SQL Server. L'exécution de l'Explorateur d'objets dans Management Studio peut échouer, car il requiert plusieurs connexions pour certaines opérations. Pour gérer SQL Server en mode mono-utilisateur, exécutez des instructions Transact-SQL en vous connectant via l’éditeur de requête dans Management Studio ou Azure Data Studio, ou utilisez l’ utilitaire sqlcmd.

Lorsque vous utilisez l’option -m avec SQLCMD ou Management Studio, vous pouvez limiter les connexions à une application cliente spécifiée.

Remarque

Sur Linux, SQLCMD doit être en majuscule comme indiqué.

Par exemple, -m"SQLCMD" limite les connexions à une seule connexion, laquelle doit s’identifier en tant que programme client sqlcmd. Utilisez cette option quand vous démarrez SQL Server en mode mono-utilisateur et qu’une application cliente inconnue utilise la seule connexion disponible. Pour établir une connexion par le biais de l'Éditeur de requêtes 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.

Considérations relatives à Always-on

Il existe des considérations supplémentaires lors de l’utilisation du mode mono-serveur pour les instances SQL Server configurées en tant qu’instance de cluster de basculement Always-on (FCI), ou vos bases de données font partie d’un groupe de disponibilité Always On (AG).

Groupes de disponibilité

Le démarrage du groupe de disponibilité Always On et des bases de données dans le groupe est ignoré lorsque SQL Server est démarré en mode mono-utilisateur. Si vous devez résoudre les problèmes liés à une base de données nécessitant le démarrage de SQL Server en mode mono-utilisateur et que la base de données fait également partie d’un groupe de disponibilité, vous devez supprimer la base de données du groupe de disponibilité avant de démarrer SQL Server en mode mono-utilisateur afin que la base de données passe en ligne.

Instances de cluster de basculement

Pour l'installation SQL Server dans un environnement en cluster, lorsque SQL Server est démarré en mode mono-utilisateur, la DLL de ressource de cluster utilise la connexion disponible, ce qui bloque par conséquent les autres connexions au serveur. Lorsque SQL Server est dans cet état, si vous essayez de mettre la ressource Agent SQL Server en ligne, la ressource SQL peut basculer à un nœud différent si la ressource est configurée pour affecter le groupe.

Pour contourner le problème, utilisez la procédure suivante :

  1. Supprimez le paramètre de démarrage -m des propriétés avancées de SQL Server.

  2. Mettez la ressource SQL Server hors connexion.

  3. À partir du nœud de propriétaire actuel de ce groupe, émettez le commande suivante de l'invite de commandes :

    net start MSSQLSERVER /m
    
  4. Vérifiez dans la console de l'administrateur de cluster ou de gestion de cluster de basculement que la ressource SQL Server est encore hors connexion.

  5. Connectez-vous maintenant à SQL Server en utilisant la commande suivante et exécutez l’opération nécessaire : SQLCMD -E -S<nomduserveur>.

  6. Une fois que l'opération est terminée, fermez l'invite de commandes et remettez les ressources SQL et d'autres ressources en ligne via la console de l'administrateur de cluster.