<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le Blog SQL Server d&#039;ElSüket &#187; password</title>
	<atom:link href="https://blog.developpez.com/elsuket/ptag/password/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/elsuket</link>
	<description>Nicolas Souquet - Expert SQL Server</description>
	<lastBuildDate>Mon, 05 Apr 2021 07:32:41 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Reprendre le contrôle d&#8217;une instance SQL Server lorsqu&#8217;on a perdu le mot de passe de la connexion sa ou lorsque tous les DBAs en ont perdu l&#8217;accès</title>
		<link>https://blog.developpez.com/elsuket/p12007/moteur-de-base-de-donnees-sql-server/reprendre-le-controle-dune-instance-sql-server-lorsquon-a-perdu-le-mot-de-passe-de-la-connexion-sa-ou-lorsque-tous-les-dbas-en-ont-perdu-lacces</link>
		<comments>https://blog.developpez.com/elsuket/p12007/moteur-de-base-de-donnees-sql-server/reprendre-le-controle-dune-instance-sql-server-lorsquon-a-perdu-le-mot-de-passe-de-la-connexion-sa-ou-lorsque-tous-les-dbas-en-ont-perdu-lacces#comments</comments>
		<pubDate>Fri, 31 May 2013 00:36:28 +0000</pubDate>
		<dc:creator><![CDATA[elsuket]]></dc:creator>
				<category><![CDATA[Moteur de base de données SQL Server]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Utilitaires]]></category>
		<category><![CDATA[instance]]></category>
		<category><![CDATA[mot de passe]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[sa]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/elsuket/?p=524</guid>
		<description><![CDATA[Comment faire lorsqu&#8217;on a perdu le mot de passe de la connexion sa pour se connecter à l&#8217;instance ? Ou comment est-il possible de prendre le contrôle d&#8217;une instance SQL Server installée par une personne avec son propre compte, et &#8230; <a href="https://blog.developpez.com/elsuket/p12007/moteur-de-base-de-donnees-sql-server/reprendre-le-controle-dune-instance-sql-server-lorsquon-a-perdu-le-mot-de-passe-de-la-connexion-sa-ou-lorsque-tous-les-dbas-en-ont-perdu-lacces">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Comment faire lorsqu&rsquo;on a perdu le mot de passe de la connexion sa pour se connecter à l&rsquo;instance ?<br />
Ou comment est-il possible de prendre le contrôle d&rsquo;une instance SQL Server installée par une personne avec son propre compte, et qui a quitté l&rsquo;entreprise depuis une durée plus grande que celle de l&rsquo;expiration des mots de passe ?<br />
<span id="more-524"></span><br />
Il est pour cela nécessaire d&rsquo;avoir accès à la machine avec un compte d’administrateur local : en effet dans ce cas, le démarrage en mode mono-utilisateur d&rsquo;une instance de SQL Server autorise l&rsquo;accès à un tel compte. Cela permet donc de créer une nouvelle connexion, à laquelle on octroie le privilège et sésame d&rsquo;appartenance au rôle fixe de serveur <em>sysadmin</em>.</p>
<p>Voyons tout d&rsquo;abord quelles sont les connexions qui disposent du privilège d&rsquo;appartenance au rôle <em>sysadmin</em>. La requête suivante liste l&rsquo;ensemble des connexions inscrites aux rôles d&rsquo;instance :</p>
<div class="codecolorer-container tsql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="tsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000FF;">SELECT</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SPR.<span style="color: #202020;">name</span> <span style="color: #0000FF;">AS</span> server_role_name<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , SPM.<span style="color: #202020;">name</span> <span style="color: #0000FF;">AS</span> server_role_member_name<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; , SPR.<span style="color: #202020;">type_desc</span><br />
<span style="color: #0000FF;">FROM</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sys.<span style="color: #202020;">server_role_members</span> <span style="color: #0000FF;">AS</span> SRM<br />
<span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>&nbsp; &nbsp; &nbsp; sys.<span style="color: #202020;">server_principals</span> <span style="color: #0000FF;">AS</span> SPR<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000FF;">ON</span> SRM.<span style="color: #202020;">role_principal_id</span> <span style="color: #808080;">=</span> SPR.<span style="color: #202020;">principal_id</span><br />
<span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>&nbsp; &nbsp; &nbsp; sys.<span style="color: #202020;">server_principals</span> <span style="color: #0000FF;">AS</span> SPM<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000FF;">ON</span> SRM.<span style="color: #202020;">member_principal_id</span> <span style="color: #808080;">=</span> SPM.<span style="color: #202020;">principal_id</span></div></td></tr></tbody></table></div>
<p><img src="http://img689.imageshack.us/img689/5329/restartsqlserversingleu.png" alt="" /></p>
<p>La connexion <em>ELSUKET8\Nicolas</em> est celle d&rsquo;administrateur local de mon PC : je la supprime :</p>
<div class="codecolorer-container tsql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="tsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000FF;">DROP</span> LOG<span style="color: #808080;">IN</span> <span style="color: #808080;">&#91;</span>ELSUKET8\Nicolas<span style="color: #808080;">&#93;</span></div></td></tr></tbody></table></div>
<p>A l&rsquo;ouverture d&rsquo;une nouvelle fenêtre de requête, nous obtenons bien l&rsquo;erreur :</p>
<p><img src="http://img836.imageshack.us/img836/5329/restartsqlserversingleu.png" alt="" /></p>
<p>Rendons-nous maintenant dans le <a href="http://blog.developpez.com/elsuket/p7723/moteur-de-base-de-donnees-sql-server/configurer_les_protocoles_de_connexion_a">gestionnaire de configuration de SQL Server</a>. Si l&rsquo;instance est sous SQL Server 2012 et que l&rsquo;on souhaite ouvrir cette console à partir d&rsquo;une fenêtre de ligne de commandes, il faudra saisir <em>SQLServerManager11.msc</em>. Une fois la console ouverte, on peut double-cliquer sur SQL Server Services dans l&rsquo;un des deux panneaux, et on obtient la liste des services SQL Server installés :</p>
<p><img src="http://img248.imageshack.us/img248/5329/restartsqlserversingleu.png" alt="" /></p>
<p>Un clic-droit sur le service SQL Server nous permet d&rsquo;accéder, en outre, aux paramètres de démarrage du service. Sous SQL Server 2005 et 2008, ils se trouvent dans l&rsquo;onglet <em>Avancé</em>, mais sous SQL Server 2012, l&rsquo;onglet <em>Paramètres de démarrage</em> a fait son apparition :</p>
<p><img src="http://img22.imageshack.us/img22/5329/restartsqlserversingleu.png" alt="" /></p>
<p>Nous ajoutons ici le paramètre l&rsquo;option <em>-m</em>, qui permet de démarrer une instance en mode mono-utilisateur. Sous SQL Server 2005 et 2008, dans l&rsquo;onglet <em>Avancé</em>, il est nécessaire de placer le curseur à la fin de la chaîne du paramètre <em>Paramètres de démarrage</em>, et d&rsquo;ajouter <em>;-m</em> après la fin de cette chaîne. Une fois fait, nous sommes avertis qu&rsquo;il est évidemment nécessaire de redémarrer le service :</p>
<p><img src="http://img545.imageshack.us/img545/5329/restartsqlserversingleu.png" alt="" /></p>
<p>On peut redémarrer le service toujours à partir de la même console, par un clic-droit sur le service. Une fois fait, nous démarrons SQL Server Management Studio (SSMS) <strong>en tant qu&rsquo;administrateur</strong>. Cette option est accessible par un simple clic-droit sur le raccourci. Attention : comme nous sommes en mode mono-utilisateur, il n&rsquo;est pas possible d&rsquo;ouvrir une connexion pour l&rsquo;explorateur d&rsquo;objets. Donc si l&rsquo;on ne ferme pas la connexion de ce dernier (par clic-droit sur le nom de l&rsquo;instance dans celui-ci), il est impossible d&rsquo;ouvrir une fenêtre de requête.</p>
<p>Nous nous octroyons maintenant le droit de connexion et d&rsquo;appartenance au rôle de serveur <em>sysadmin</em> :</p>
<div class="codecolorer-container tsql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="tsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000FF;">CREATE</span> LOG<span style="color: #808080;">IN</span> <span style="color: #808080;">&#91;</span>ELSUKET8\ElSuket<span style="color: #808080;">&#93;</span><br />
<span style="color: #0000FF;">FROM</span> W<span style="color: #808080;">IN</span>DOWS<br />
GO<br />
<br />
<span style="color: #008080;">-- SQL Server 2012</span><br />
<span style="color: #0000FF;">ALTER</span> SERVER <span style="color: #0000FF;">ROLE</span> sysadmin <span style="color: #0000FF;">ADD</span> MEMBER <span style="color: #808080;">&#91;</span>ELSUKET8\ElSuket<span style="color: #808080;">&#93;</span><br />
<br />
<span style="color: #008080;">-- SQL Server 2000, 2005 et 2008</span><br />
<span style="color: #0000FF;">EXEC</span> <span style="color: #AF0000;">sp_addsrvrolemember</span> <span style="color: #FF0000;">'ELSUKET8\ElSuket'</span>, <span style="color: #FF0000;">'sysadmin'</span></div></td></tr></tbody></table></div>
<p>Nous devons maintenant retourner dans la console de configuration des services de SQL Server, retirer le paramètre -m, et redémarrer à nouveau le service, de sorte que l&rsquo;instance soit de nouveau accessible par plusieurs connexions. Une fois fait, on peut démarrer SSMS normalement (i.e. pas en tant qu&rsquo;administrateur), et nous pouvons de nouveau accéder à l&rsquo;instance SQL Server :</p>
<p><img src="http://img835.imageshack.us/img835/5329/restartsqlserversingleu.png" alt="" /></p>
<p><img src="http://img12.imageshack.us/img12/5913/iconarrowp.gif" alt="" /> <strong>Changer le mot de passe de la connexion <em>sa</em></strong></p>
<p>Cela se fait de la même façon, en suivant les étapes suivantes :</p>
<p>1. Ajouter le paramètre -m aux paramètres de démarrage du service SQL Server, puis redémarrer le service;<br />
2. Se connecter à l&rsquo;instance SQL Server avec SSMS en tant qu’administrateur;<br />
3. Changer le mot de passe de la connexion <em>sa</em> avec l&rsquo;instruction suivante :</p>
<div class="codecolorer-container tsql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="tsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000FF;">ALTER</span> LOG<span style="color: #808080;">IN</span> sa <span style="color: #0000FF;">WITH</span> PASSW<span style="color: #808080;">OR</span>D <span style="color: #808080;">=</span> <span style="color: #FF0000;">'unMotDePasseRobuste'</span></div></td></tr></tbody></table></div>
<p>4. Supprimer le paramètre -m des paramètres de démarrage du service SQL Server, puis redémarrer le service une nouvelle fois;<br />
5. Se connecter normalement avec SSMS, le nom de connexion <em>sa</em> et le nouveau mot de passe.</p>
<p><img src="http://img12.imageshack.us/img12/5913/iconarrowp.gif" alt="" /> <strong>Effectuer ces mêmes opérations en ligne de commande avec l&rsquo;utilitaire SQLCMD</strong></p>
<p>Il est pour cela nécessaire d&rsquo;ouvrir un fenêtre de lignes de commande en tant qu&rsquo;administrateur. On peut tout simplement créer une raccourci qui pointe sur <em>cmd</em>, puis par clic-droit sur celui-ci, choisir de mode :</p>
<p><img src="http://img689.imageshack.us/img689/5316/restartsqlserversingleux.png" alt="" /></p>
<p>Une fois fait, on démarre l&rsquo;utilitaire en lignes de commande SQLCMD très simplement :</p>
<div class="codecolorer-container tsql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="tsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sqlcmd <span style="color: #808080;">-</span>S <span style="color: #808080;">&#91;</span>uneInstance<span style="color: #808080;">&#93;</span></div></td></tr></tbody></table></div>
<p><img src="http://img823.imageshack.us/img823/5329/restartsqlserversingleu.png" alt="" /></p>
<p>Puis, par exemple, changer le mot de passe de la connexion <em>sa</em> :</p>
<p><img src="http://img577.imageshack.us/img577/5329/restartsqlserversingleu.png" alt="" /></p>
<p>Après chaque ligne de code tapée sous SQLCMD, si l&rsquo;on appuie sur <em>Entrée</em>, la commande n&rsquo;est pas exécutée : il faut pour cela utiliser la marqueur de fin de lot GO (qui n&rsquo;est pas une instruction SQL ou T-SQL !). Enfin, pour sortir de l&rsquo;utilitaire SQLCMD, il suffit de taper <em>exit</em>.</p>
<p>Bonne récupération d&rsquo;accès à tous !</p>
<p>ElSüket.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
