Se connecter à SQL Server lorsque les administrateurs système n'y ont plus accès
Cette rubrique explique comment vous pouvez regagner 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 à une 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 sa est désactivé ou personne ne connaît le mot de passe.
L'une des méthodes pour retrouver l'accès consiste à réinstaller SQL Server et à attacher toutes les bases de données à la nouvelle 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 de l'option -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.
[!REMARQUE]
Lorsque vous démarrez une instance de SQL Server en mode mono-utilisateur, arrêtez au préalable le service SQL Server Agent. Sinon, l'Agent SQL Server peut se connecter en premier et vous empêcher de vous connecter en tant que second 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 connexion unique, laquelle 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 établir une connexion par le biais de l'Éditeur de requêtes dans Management Studio, utilisez -m"Microsoft SQL Server Management Studio - Query".
Remarque relative à la sécurité |
---|
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 détaillées sur le démarrage de 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 à une instance de SQL Server 2012 s'exécutant sous Windows 8. De légers ajustements sont requis pour les versions antérieures de SQL Server ou Windows. Pour exécuter ces instructions, vous devez être connecté à Windows en tant que membre du groupe Administrateurs locaux et SQL Server Management Studio doit être installé sur l'ordinateur.
À partir de 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.)
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.
Fermez Management Studio.
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 droit sur l'instance de SQL Server, puis cliquez sur Propriétés.
Sous l'onglet Paramètres de démarrage, dans la zone Spécifiez 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)
[!REMARQUE]
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.)
Cliquez sur OK, puis après le message de redémarrage, cliquez avec le bouton droit sur le nom de votre serveur et cliquez sur Redémarrer.
Une fois que SQL Server a redémarré, votre serveur est en mode mono-utilisateur. Vérifiez que l'agent SQL Server ne s'exécute pas. S'il est démarré, il utilise votre unique connexion.
Sur l'écran de démarrage 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.)
[!REMARQUE]
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 :
Connectez-vous avec l'Explorateur d'objets en utilisant l'authentification Windows (qui contient vos informations d'identification d'administrateur). Développez Sécurité, développez Connexions, puis double-cliquez sur votre propre connexion. Sur la page Rôles serveur, sélectionnez sysadmin, puis cliquez sur OK.
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 pouvez vous connecter de cette manière uniquement si vous ne vous êtes pas connecté avec l'Explorateur d'objets.) Exécutez le code (semblable au suivant) permettant d'ajouter une connexion d'authentification Windows qui est membre du rôle serveur fixe sysadmin. 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];
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 le code (semblable au suivant) permettant de créer une connexion d'authentification SQL Server qui est membre du rôle serveur fixe sysadmin.
CREATE LOGIN TempLogin WITH PASSWORD = '************'; ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;
Attention Remplacez ************ par un mot de passe fort.
Si votre instance de SQL Server s'exécute en mode d'authentification mixte et que vous souhaitez réinitialiser le mot de passe du compte sa, connectez-vous avec une fenêtre de requête en utilisant l'authentification Windows (qui inclut vos informations d'identification d'administrateur). Modifiez le mot de passe du compte sa en respectant la syntaxe suivante.
ALTER LOGIN sa WITH PASSWORD = '************';
Attention Remplacez ************ par un mot de passe fort.
Les étapes suivantes rebasculent SQL Server en mode multi-utilisateur. Fermez SSMS.
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.
Sous l'onglet Paramètres de démarrage, dans la zone Paramètres existants, sélectionnez -m, puis cliquez sur Remove.
[!REMARQUE]
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 ;-m que vous avez ajouté précédemment, puis cliquez sur OK.
Cliquez avec le bouton droit sur le nom de votre serveur, puis sélectionnez Redémarrer.
Vous devez désormais être en mesure de vous connecter normalement avec l'un des comptes qui est maintenant membre du rôle serveur fixe sysadmin.