Ce contenu traduit automatiquement peut être modifié par les membres de la communauté. Nous vous invitons à améliorer la traduction en cliquant sur le lien « Modifier » associé aux phrases ci-dessous.
SQL Server 2012: Password emergency
If the unthinkable happens and you forget your SQL Server password, there are ways to get back into the system.
Saleem Hakani
You’re a proud and a trusted DBA at your organization.
You’re responsible for maintaining and updating several important services running on SQL Servers in your production environment.
You’ve decided to perform the following steps—which are the kind of best practices any solid DBA would take—to secure your company’s SQL Servers from any unauthorized access:
-
You’ve removed any and all built-in administrator accounts from SQL Server logins.
-
You’ve removed all users (except System Administrator, or SA) that were part of the SYSADMIN server role (including any Windows Accounts and SQL Server logins).
-
You’ve set the SA account password to something extremely complex that would be hard for anyone to guess or remember.
-
For day-to-day operations on SQL Server, you use your domain user account, which has Database Owner (DBO) permissions on user databases but doesn’t have SYSADMIN privileges on the system.
-
You haven’t documented the SA password anywhere to prevent others from knowing it.
After all, it’s not a good practice to document the password.
Because you’ve set the SA password to be so complex—and you’ve been using your domain account and not the SA account for all your daily database-related activity on SQL Server—the unthinkable has happened.
You forgot your SQL Server SA password.
You were the only person who knew the SA password in your team.
Now you don’t remember what it was and you need to make some server-level configuration changes to your production SQL Server boxes.
What are you going to do now?
Here are some options:
-
Try logging in as SA with all possible passwords you have in your mind.
-
Look for the SA password on your computer hard drive or in your e-mails (you may have stored it in some file, which is a bad practice, but can be helpful).
-
Try to restore the Master database from database backup.
This won’t help in the long run because you’ll still encounter the same issue if you don’t remember the SA password.
-
Rebuild the Master database.
This is only marginally helpful, as you’ll lose all system- and server-level configurations and settings including logins, permissions and any server-level objects.
-
Re-install SQL Server 2012 and attach all user databases.
This may not work, as you may experience the same issues that you would experience with rebuilding the Master database.
Assume all your attempts to log in to the system using the SA password have failed.
Now it’s time for you to call for reinforcements: the Microsoft product support services team.
Here’s what they might tell you to do:
This is a backdoor to SQL Server 2012 that will help you gain SYSADMIN access to your production SQL Servers.
However, this means your Windows account will have to be a member of the local administrators group on Windows Servers where SQL Server 2012 services are running.
SQL Server lets any member of a Local Administrators group connect to SQL Server with SYSADMIN privileges.
Here are the steps to take control of your SQL Server 2012 as an SA:
|
1.
|
Start the SQL Server 2012 instance using single-user mode from the command prompt by launching the command prompt as an administrator.
You can also start SQL Server 2012 using minimal configuration, which will also put SQL Server in single-user mode.
|
|
2.
|
From the command prompt (Run as Administrator), type: SQLServr.Exe –m (or SQLServr.exe –f) and start the SQL Server 2012 database engine.
Make sure you don’t close this command prompt window.
You can locate SQLServr.exe in the Binn folder of your environmental path.
If you don’t have a SQL Server 2012 Binn folder in your environmental path, you can always navigate to the Binn folder of your SQL Server 2012 machine.
Usually the Binn folder is located at C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>.
|
|
3.
|
Once the SQL Server 2012 service has started in single-user mode or with minimal configuration, you can now open up another command-line window as an administrator and use the SQLCMD command from the command prompt to connect to the SQL Server 2012 instance:
|
SQLCMD –S <Server_Name\Instance_Name>
Example: SQLCMD –S "SALEEMHAKANI"
| |
You will now be logged in to SQL Server.
Keep in mind that you’re logged in as an Admin on the SALEEMHAKANI SQL Server 2012 instance.
|
|
4.
|
Once you’re logged in to SQL Server 2012 using SQLCMD from the command prompt, you have the option of creating a new account and granting it any server-level permission.
Create a new login in SQL Server 2012 called “Saleem_SQL” and then add this account to the SA server role.
To create a new login from the command prompt after performing Step 3, use the following:
|
1> CREATE LOGIN '<Login_Name>' with PASSWORD='<Password>'
2> GO
1> CREATE LOGIN SQL_SALEEM WITH PASSWORD='$@L649$@m'
2> GO
| |
Once you’ve created the new login “SQL_SALEEM,” add this login to the SA server role on the SQL Server 2012 instance.
From the same command-prompt window, execute the following statement:
|
1> SP_ADDSRVROLEMEMBER '<Login_Name>','SYSADMIN'
2>go
| |
To add an existing login to the SYSADMIN server role, execute the following:
|
1> SP_ADDSRVROLEMEMBER '<LOGIN_NAME>','SYSADMIN'
2> GO
1> SP_ADDSRVROLEMEMBER SQL_SALEEM,'SYSADMIN'
2> GO
| |
The previous operation will take care of granting SYSADMIN privileges to the “SQL_SALEEM” login.
|
|
5.
|
Once you’ve successfully performed these steps, the next step is to stop and start SQL Server services using regular startup options.
This time you won’t need –f or –m.
|
|
6.
|
Log in to the SQL Server 2012 management studio.
You could also log in from the command prompt using the “SQL_SALEEM” account and its respective password.
You now have SA access to your SQL Server 2012 instance.
You may now reset the SA password and take control of your production SQL Server boxes.
It’s perfectly normal to forget your password from time to time, but that doesn’t mean it’s any less of a hassle.
These emergency steps should get you up and running without too much scrambling or downtime.
|
Saleem Hakani
is a principal architect at Microsoft with more than 18 years of experience.He has worked with SQL Server since 1992 and has worked on numerous large-scale Microsoft services as an engineer and architect over the last seven years, including Hotmail, Bing and MSN.Hakani leads the worldwide SQL Server Community for Microsoft employees, and is a technical presenter for various Microsoft events including TechReady, SQLFEST, SQL-SCHOOL and SQLPASS.
Related Content
|
SQL Server 2012 : Urgence mot de passe
Lorsque l'impensable se produit et que vous oubliez votre mot de passe SQL Server, il existe des moyens d'accéder au système.
Saleem Hakani
Vous êtes une fierté et un confiance DBA au sein de votre organisation.
Vous êtes responsable de tenir à jour plusieurs services importants en cours d'exécution sur les serveurs SQL Server dans votre environnement de production.
Vous avez décidé d'effectuer les étapes suivantes, qui sont les meilleures pratiques tout DBA solide prendrait — pour garantir à votre entreprise de serveurs SQL de tout accès non autorisé :
-
Vous avez supprimé les comptes d'administrateur intégrés tout entre les connexions SQL Server.
-
Vous avez supprimé tous les utilisateurs (sauf l'administrateur système, ou SA) qui faisaient partie du rôle de serveur SYSADMIN (y compris les connexions des comptes Windows et SQL Server).
-
Vous avez défini le mot de passe du compte SA à quelque chose d'extrêmement complexe qui est difficile pour quiconque de deviner ou de se rappeler.
-
Pour les opérations courantes sur SQL Server, vous utilisez votre compte d'utilisateur de domaine, qui dispose d'autorisations de propriétaire de base de données (DBO) sur les bases de données utilisateur, mais ne dispose pas des privilèges SYSADMIN sur le système.
-
Vous n'avez pas documenté le mot de passe SA n'importe où pour empêcher quiconque de le savoir.
Après tout, il n'est pas une bonne pratique de documenter le mot de passe.
Parce que vous avez défini le mot de passe SA est donc complexe, et vous utilisez votre compte de domaine et pas le compte SA pour votre quotidienne axés sur la base de données sur l'activité SQL Server — l'impensable s'est produit.
Vous avez oublié votre mot de passe SQL Server SA.
Vous étiez la seule personne qui connaissait le mot de passe SA de votre équipe.
Maintenant, vous ne me souviens pas ce que c'était et que vous devez apporter quelques modifications de configuration au niveau du serveur à vos boîtes de SQL Server de production.
Qu'allez-vous faire maintenant ?
Voici quelques solutions :
-
Essayez de vous connecter tant que SA avec tous les mots de passe possibles, que vous avez dans votre esprit.
-
Rechercher le mot de passe SA sur votre disque dur ou dans vos e-mails (vous pouvez stockées dans un fichier, qui est une mauvaise pratique, mais pouvez s'avérer utile).
-
Essayez de restaurer le capitaine base de données de sauvegarde de la base de données.
Cela n'aidera pas à long terme parce que vous allez rencontrer toujours le même problème si vous ne me souviens pas du mot de passe SA.
-
Reconstruire le capitaine base de données.
C'est seulement marginalement utile, car vous perdrez toutes les configurations au niveau du système et du serveur et les paramètres, y compris les connexions, les autorisations et tous les objets au niveau du serveur.
-
Réinstallez SQL Server 2012 et attachez toutes les bases de données utilisateur.
Cela peut ne pas fonctionner, que vous pouvez rencontrer les mêmes problèmes qui pourraient se produire avec le maître de la reconstruction des bases de données.
Assumer toutes vos tentatives de se connecter au système en utilisant le mot de passe SA.
Il est maintenant temps pour vous d'appeler des renforts : le produit de Microsoft prend en charge l'équipe des services.
Voici ce qu'ils pourraient vous faire dire :
C'est une porte dérobée pour SQL Server 2012 qui vous aideront à avoir accès SYSADMIN à vos serveurs SQL Server de production.
Toutefois, cela signifie que votre compte Windows devra être un membre du groupe administrateurs locaux sur les serveurs Windows exécutant les services SQL Server 2012.
SQL Server permet de se connecter à SQL Server avec des privilèges SYSADMIN n'importe quel membre d'un groupe d'administrateurs locaux.
Voici les étapes à prendre le contrôle de votre SQL Server 2012 comme une association de sécurité :
|
1.
|
Démarrez l'instance de SQL Server 2012 en utilisant le mode mono-utilisateur à l'invite de commande en lançant l'invite de commandes en tant qu'administrateur.
Vous pouvez également démarrer SQL Server 2012 à l'aide d'une configuration minimale, qui mettra également SQL Server en mode mono-utilisateur.
|
|
2.
|
À partir de l'invite de commande (exécuter en tant qu'administrateur), tapez : – M SQLServr.Exe (ou SQLServr.exe – f) et démarrer le moteur de base de données SQL Server 2012.
Assurez-vous que vous ne fermez pas cette fenêtre d'invite de commandes.
Vous pouvez localiser SQLServr.exe dans le dossier Binn de cheminement de votre environnement.
Si vous n'avez pas un dossier Binn de SQL Server 2012 dans le cheminement de votre environnement, vous pouvez toujours naviguer vers le dossier Binn de votre ordinateur SQL Server 2012.
Généralement le dossier Binn se trouve dans C:\Program Files\Microsoft SQL Server MSSQL11.MSSQLSERVER\MSSQL\Binn >.
|
|
3.
|
Une fois SQL Server 2012 service a démarré en mode mono-utilisateur ou avec une configuration minimale, vous pouvez maintenant ouvrir une autre fenêtre de ligne de commande en tant qu'administrateur et utiliser la commande SQLCMD à partir de l'invite pour se connecter à l'instance de SQL Server 2012 :
|
SQLCMD –S <Server_Name\Instance_Name>
Example: SQLCMD –S "SALEEMHAKANI"
| |
Vous va maintenant être connecté à SQL Server.
N'oubliez pas que vous êtes connecté en tant qu'administrateur sur l'instance de SALEEMHAKANI SQL Server 2012.
|
|
4.
|
Une fois que vous êtes connecté à SQL Server 2012 utilisant SQLCMD à partir de l'invite de commande, vous avez la possibilité de créer un nouveau compte et lui accordant l'autorisation au niveau du serveur.
Créer une nouvelle connexion SQL Server 2012, appelé « Saleem_SQL » et puis ajoutez ce compte au rôle de serveur SA.
Pour créer une nouvelle connexion à l'invite de commande après avoir effectué l'étape 3, procédez comme suit :
|
1> CREATE LOGIN '<Login_Name>' with PASSWORD='<Password>'
2> GO
1> CREATE LOGIN SQL_SALEEM WITH PASSWORD='$@L649$@m'
2> GO
| |
Une fois que vous avez créé le nouveau nom de connexion "SQL_SALEEM", ajouter ce nom d'utilisateur au rôle SA server sur l'instance de SQL Server 2012.
De la même fenêtre d'invite de commandes, exécutez l'instruction suivante :
|
1> SP_ADDSRVROLEMEMBER '<Login_Name>','SYSADMIN'
2>go
| |
Pour ajouter une connexion existante dans le rôle de serveur SYSADMIN, exécutez ce qui suit :
|
1> SP_ADDSRVROLEMEMBER '<LOGIN_NAME>','SYSADMIN'
2> GO
1> SP_ADDSRVROLEMEMBER SQL_SALEEM,'SYSADMIN'
2> GO
| |
L'opération précédente s'occupera de l'octroi des privilèges SYSADMIN à la connexion « SQL_SALEEM ».
|
|
5.
|
Une fois que vous avez correctement effectué ces étapes, l'étape suivante consiste à arrêter et démarrer les services SQL Server à l'aide des options de démarrage normal.
Cette fois, vous n'aurez pas besoin – f ou – m.
|
|
6.
|
Ouvrez une session 2012 de SQL Server management studio.
Vous pourriez également ouvrir une session partir de l'invite de commande en utilisant le compte « SQL_SALEEM » et son mot de passe respectif.
Vous avez maintenant accès SA à votre instance de SQL Server 2012.
Vous pouvez maintenant réinitialiser le mot de passe SA et prendre le contrôle de votre production de boîtes de SQL Server.
Il est parfaitement normal d'oublier votre mot de passe de temps en temps, mais qui ne signifie pas que c'est moins de tracas.
Ces mesures d'urgence vous doivent se lever et courir sans trop de brouillage ou de temps d'arrêt.
|
Saleem Hakani
est architecte principal chez Microsoft avec plus de 18 années d'expérience.Il a travaillé avec SQL Server depuis 1992 et a travaillé sur nombreux services à grande échelle de Microsoft comme ingénieur et architecte au cours des sept dernières années, y compris Hotmail, Bing et MSN.Hakani dirige la communauté SQL Server pour les employés de Microsoft et est un présentateur technique pour divers événements Microsoft SQL-école, TechReady, SQLFEST et SQLPASS.
Contenu associé
|
|
TechNet Features
TechNet SubscriptionsVous n'êtes pas abonné à Technet ? Évaluez les logiciels Microsoft et planifiez leurs déploiements en toute confiance grâce à un abonnement Microsoft TechNet.
|