{"id":7357,"date":"2019-03-21T18:00:02","date_gmt":"2019-03-21T17:00:02","guid":{"rendered":"http:\/\/blog.capdata.fr\/?p=7357"},"modified":"2022-11-21T17:09:19","modified_gmt":"2022-11-21T16:09:19","slug":"sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/","title":{"rendered":"SQL Server : resynchroniser un login avec le user d&#8217;une base apr\u00e8s une restauration gr\u00e2ce au SID"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F7357&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F7357&#038;title=SQL%20Server%20%3A%20resynchroniser%20un%20login%20avec%20le%20user%20d%E2%80%99une%20base%20apr%C3%A8s%20une%20restauration%20gr%C3%A2ce%20au%20SID\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=SQL%20Server%20%3A%20resynchroniser%20un%20login%20avec%20le%20user%20d%E2%80%99une%20base%20apr%C3%A8s%20une%20restauration%20gr%C3%A2ce%20au%20SID&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F7357\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p>Voici un probl\u00e8me qui est bien connu des DBAs SQL Server en mati\u00e8re d&#8217;attributions de droits et mappings.<\/p>\n<p>Celui- ci est li\u00e9 \u00e0 la resynchronisation des logins et users bases de donn\u00e9es apr\u00e8s une restauration de bases.<\/p>\n<p>Au sein d&#8217;une instance SQL Server, chaque login a un SID qui est un identifiant repr\u00e9sentant une valeure hexad\u00e9ciamale unique au sein du moteur SQL Server.<\/p>\n<p>Il en va de m\u00eame pour un user d\u00e9clar\u00e9 sur une base de donn\u00e9es, ce SID est \u00e9galement unique et, il est g\u00e9n\u00e9ralement associ\u00e9 au login au moment du mapping du login au user base de donn\u00e9es attach\u00e9.<br \/>\nPour notre exemple, nous utiliserons une base de donn\u00e9es nomm\u00e9 &#8220;capdata_db&#8221; et un user nomm\u00e9 &#8220;manu&#8221; qui sera dbo sur cette base. Le login &#8220;manu&#8221; existe d\u00e9j\u00e0 au sein de l&#8217;instance.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #0000ff;\">USE [capdata_db]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><br \/>\n<span style=\"color: #0000ff;\">CREATE USER [manu] FOR LOGIN [manu]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><br \/>\n<span style=\"color: #0000ff;\">USE [capdata_db]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><br \/>\n<span style=\"color: #0000ff;\">ALTER USER [manu] WITH DEFAULT_SCHEMA=[dbo]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>S&#8217;il l&#8217;on cherche les SID pour ce login et ce user bases de donn\u00e9es, cr\u00e9\u00e9 \u00e0 partir de ce login, nous voyons que les SID sont identiques :<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #0000ff;\">use master<\/span><br \/>\n<span style=\"color: #0000ff;\">select name, sid from sys.syslogins where name =&#8217;manu&#8217;<\/span><br \/>\n<span style=\"color: #0000ff;\">go<\/span><\/p>\n<p><span style=\"color: #0000ff;\">use capdata_db<\/span><br \/>\n<span style=\"color: #0000ff;\">select name, sid from sys.sysusers where name=&#8217;manu&#8217;<\/span><br \/>\n<span style=\"color: #0000ff;\">go<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7360 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_identiques.jpg\" alt=\"\" width=\"422\" height=\"150\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_identiques.jpg 422w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_identiques-300x107.jpg 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/p>\n<p>Le mapping pourra se voir dans les propri\u00e9t\u00e9s du login &#8220;manu&#8221; de l&#8217;instance.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7361 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/mapping_login_manu.jpg\" alt=\"\" width=\"684\" height=\"98\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/mapping_login_manu.jpg 684w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/mapping_login_manu-300x43.jpg 300w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Cas d&#8217;une restauration<\/h3>\n<p>On imagine que l&#8217;on est sur un serveur de recette, et que, dans le cadre de tests d&#8217;un nouvel applicatif, nous souhaitons tester les donn\u00e9es fra\u00eeches de l&#8217;instance de production. Nous devrons alors, restaurer la base de donn\u00e9es &#8220;capdata_db&#8221; \u00e0 partir d&#8217;un serveur de production vers notre environnement de recette.<\/p>\n<p>Nous utiliserons le dernier backup de production que nous restaurerons sur la recette avec un PITR d\u00e9fini par les \u00e9quipes m\u00e9tier (restore database with norecovery, restore log with norecovery stopat&#8230;.)<\/p>\n<p>Une fois cette base restaur\u00e9e, on regarde les users attach\u00e9s \u00e0 cette base. On voit bien qu&#8217;un user &#8220;manu&#8221; est pr\u00e9sent:<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-7363\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/user_manu_newDB-1-242x300.jpg\" alt=\"\" width=\"242\" height=\"300\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/user_manu_newDB-1-242x300.jpg 242w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/user_manu_newDB-1.jpg 251w\" sizes=\"auto, (max-width: 242px) 100vw, 242px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Mais si l&#8217;on repasse les m\u00eames requ\u00eates qu&#8217;au d\u00e9but pour voir les SID du login et du user :<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #0000ff;\">use master<\/span><br \/>\n<span style=\"color: #0000ff;\">select name, sid from sys.syslogins where name =&#8217;manu&#8217;<\/span><br \/>\n<span style=\"color: #0000ff;\">go<\/span><\/p>\n<p><span style=\"color: #0000ff;\">use capdata_db<\/span><br \/>\n<span style=\"color: #0000ff;\">select name, sid from sys.sysusers where name=&#8217;manu&#8217;<\/span><br \/>\n<span style=\"color: #0000ff;\">go<\/span><\/p>\n<p>Cette fois ci, les SID sont diff\u00e9rents.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7364 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_differents.jpg\" alt=\"\" width=\"427\" height=\"185\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_differents.jpg 427w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_differents-300x130.jpg 300w\" sizes=\"auto, (max-width: 427px) 100vw, 427px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>En regardant le mapping de notre login &#8220;manu&#8221; on voit qu&#8217;il a perdu son attachement \u00e0 la base &#8220;capdata_db&#8221; via le user &#8220;manu&#8221;, et surtout que ce mapping ne peut plus se faire :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7365 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/mapping_sans_base.jpg\" alt=\"\" width=\"714\" height=\"77\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/mapping_sans_base.jpg 714w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/mapping_sans_base-300x32.jpg 300w\" sizes=\"auto, (max-width: 714px) 100vw, 714px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7366 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/erreur_mapping_user.jpg\" alt=\"\" width=\"699\" height=\"397\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/erreur_mapping_user.jpg 699w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/erreur_mapping_user-300x170.jpg 300w\" sizes=\"auto, (max-width: 699px) 100vw, 699px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Le mapping entre le login &#8220;manu&#8221; et le user &#8220;manu&#8221; attribu\u00e9 \u00e0 la base n&#8217;est plus possible car un user de m\u00eame nom existe d\u00e9j\u00e0. Nous aurions pu passer par un nouveau user, par exemple &#8220;manu2&#8221; mais cela a pour cons\u00e9quence la perte des informations et des droits qui auraient \u00e9t\u00e9 configur\u00e9s en base.<br \/>\nS&#8217;il l&#8217;on \u00e9dite le script li\u00e9 \u00e0 ce processus, on voit en fait que le moteur SQL Server tente, par d\u00e9faut, de cr\u00e9er un nouveau user, et d&#8217;y attacher les droits ad\u00e9quat.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #0000ff;\">USE [capdata_db]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><br \/>\n<span style=\"color: #0000ff;\">CREATE USER [manu] FOR LOGIN [manu]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><br \/>\n<span style=\"color: #0000ff;\">USE [capdata_db]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><br \/>\n<span style=\"color: #0000ff;\">ALTER USER [manu] WITH DEFAULT_SCHEMA=[dbo]<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Il ne sera donc pas possible de modifier un user via ALTER USER pour resynchroniser avec un login m\u00eame si celui ci est de m\u00eame nom<\/p>\n<p>&nbsp;<\/p>\n<h3>La cr\u00e9ation d&#8217;un nouveau login<\/h3>\n<p>L&#8217;\u00e9tape de resynchronisation login\/user va n\u00e9cessiter la recr\u00e9ation du login auparavant utilis\u00e9. Nous pourrons g\u00e9n\u00e9rer le DDL de cr\u00e9ation de ce login via l&#8217;option &#8220;Script login As \\ Create to&#8221; afin de reprendre les informations compl\u00e8te du login.<\/p>\n<p><span style=\"color: #0000ff;\">DROP LOGIN [manu] <\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><\/p>\n<p><span style=\"color: #0000ff;\">CREATE LOGIN [manu] WITH PASSWORD=N&#8217;P0wsbkDGuBz8zmXSg\/Jrk\/fE5T4yzfBeTLpMIODi1t8=&#8217;, <\/span><br \/>\n<span style=\"color: #0000ff;\">DEFAULT_DATABASE=[master], <\/span><br \/>\n<span style=\"color: #0000ff;\">DEFAULT_LANGUAGE=[us_english], <\/span><br \/>\n<span style=\"color: #0000ff;\">CHECK_EXPIRATION=OFF, <\/span><br \/>\n<span style=\"color: #0000ff;\">CHECK_POLICY=ON<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>On ira modifier l&#8217;odre SQL ci dessus en y ajoutant l&#8217;option &#8216;SID=&#8217; avec la valeure relev\u00e9 auparavant qui correspond \u00e0 celle du user d\u00e9fini en base.<\/p>\n<p>Dans notre cas, nous avions, apr\u00e8s restauration de la base<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-7367\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_base-300x72.jpg\" alt=\"\" width=\"300\" height=\"72\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_base-300x72.jpg 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_base.jpg 314w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>La requ\u00eate sera donc la suivante<\/p>\n<p><span style=\"color: #0000ff;\">CREATE LOGIN [manu] WITH PASSWORD=N&#8217;P0wsbkDGuBz8zmXSg\/Jrk\/fE5T4yzfBeTLpMIODi1t8=&#8217;, <\/span><br \/>\n<span style=\"color: #ff0000;\">SID=0xE19A6699AF282B47AF3CCE8E235447D7,<\/span><br \/>\n<span style=\"color: #0000ff;\">DEFAULT_DATABASE=[master], <\/span><br \/>\n<span style=\"color: #0000ff;\">DEFAULT_LANGUAGE=[us_english], <\/span><br \/>\n<span style=\"color: #0000ff;\">CHECK_EXPIRATION=OFF, <\/span><br \/>\n<span style=\"color: #0000ff;\">CHECK_POLICY=ON<\/span><br \/>\n<span style=\"color: #0000ff;\">GO<\/span><\/p>\n<p>On se chargera de changer le mot de passer avec l&#8217;ancienne valeur si celui ci a \u00e9t\u00e9 laiss\u00e9 par d\u00e9faut par l&#8217;ordre CREATE LOGIN. Une fois le login recr\u00e9\u00e9, on verra que dans les propri\u00e9t\u00e9s de celui-ci, le mapping au user &#8220;manu&#8221; de la base &#8220;capdata_db&#8221; est effectu\u00e9 de fa\u00e7on automatique<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7368 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/new_mapping.jpg\" alt=\"\" width=\"697\" height=\"117\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/new_mapping.jpg 697w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/new_mapping-300x50.jpg 300w\" sizes=\"auto, (max-width: 697px) 100vw, 697px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Mais surtout, que son SID a chang\u00e9 et correspond \u00e0 celui du user en base<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #0000ff;\">use master<\/span><br \/>\n<span style=\"color: #0000ff;\">select name, sid from sys.syslogins where name =&#8217;manu&#8217;<\/span><br \/>\n<span style=\"color: #0000ff;\">go<\/span><\/p>\n<p><span style=\"color: #0000ff;\">use capdata_db<\/span><br \/>\n<span style=\"color: #0000ff;\">select name, sid from sys.sysusers where name=&#8217;manu&#8217;<\/span><br \/>\n<span style=\"color: #0000ff;\">go<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7369 size-full\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/new_synchro_sid.jpg\" alt=\"\" width=\"457\" height=\"197\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/new_synchro_sid.jpg 457w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/new_synchro_sid-300x129.jpg 300w\" sizes=\"auto, (max-width: 457px) 100vw, 457px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Les diff\u00e9rentes entr\u00e9es suivantes pr\u00e9sentes sur l&#8217;error_log devraient maintenant ne plus appara\u00eetre<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #993300;\"><em>2019-03-18 19:17:14.840 Logon Login failed for user &#8216;manu&#8217;. Reason: Failed to open the explicitly specified database &#8216;capdata_db&#8217;. [CLIENT: *******]<\/em><\/span><br \/>\n<span style=\"color: #993300;\"><em>2019-03-18 19:17:14.890 Logon Error: 18456, Severity: 14, State: 38.<\/em><\/span><br \/>\n<span style=\"color: #993300;\"><em>2019-03-18 19:17:14.890 Logon Login failed for user &#8216;manu&#8217;. Reason: Failed to open the explicitly specified database &#8216;capdata_db&#8217;. [CLIENT: *******]<\/em><\/span><br \/>\n<span style=\"color: #993300;\"><em>2019-03-18 19:17:14.890 Logon Error: 18456, Severity: 14, State: 38.<\/em><\/span><\/p>\n<p>&nbsp;<\/p>\n<p>\ud83d\ude42<\/p>\n<p>N&#8217;h\u00e9sitez pas \u00e0 laisser un commentaire !<\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F7357&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F7357&#038;title=SQL%20Server%20%3A%20resynchroniser%20un%20login%20avec%20le%20user%20d%E2%80%99une%20base%20apr%C3%A8s%20une%20restauration%20gr%C3%A2ce%20au%20SID\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=SQL%20Server%20%3A%20resynchroniser%20un%20login%20avec%20le%20user%20d%E2%80%99une%20base%20apr%C3%A8s%20une%20restauration%20gr%C3%A2ce%20au%20SID&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F7357\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Voici un probl\u00e8me qui est bien connu des DBAs SQL Server en mati\u00e8re d&#8217;attributions de droits et mappings. Celui- ci est li\u00e9 \u00e0 la resynchronisation des logins et users bases de donn\u00e9es apr\u00e8s une restauration de bases. Au sein d&#8217;une&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":32,"featured_media":7360,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-7357","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlserver"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL Server : resynchroniser un login avec le user d&#039;une base apr\u00e8s une restauration gr\u00e2ce au SID - Capdata TECH BLOG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server : resynchroniser un login avec le user d&#039;une base apr\u00e8s une restauration gr\u00e2ce au SID - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Voici un probl\u00e8me qui est bien connu des DBAs SQL Server en mati\u00e8re d&#8217;attributions de droits et mappings. Celui- ci est li\u00e9 \u00e0 la resynchronisation des logins et users bases de donn\u00e9es apr\u00e8s une restauration de bases. Au sein d&#8217;une&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-21T17:00:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-21T16:09:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_identiques.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"422\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Emmanuel RAMI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emmanuel RAMI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\"},\"author\":{\"name\":\"Emmanuel RAMI\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/797b9b6698fa35f7ce3e9a70a8b102ae\"},\"headline\":\"SQL Server : resynchroniser un login avec le user d&#8217;une base apr\u00e8s une restauration gr\u00e2ce au SID\",\"datePublished\":\"2019-03-21T17:00:02+00:00\",\"dateModified\":\"2022-11-21T16:09:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\"},\"wordCount\":953,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"articleSection\":[\"SQL Server\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\",\"name\":\"SQL Server : resynchroniser un login avec le user d'une base apr\u00e8s une restauration gr\u00e2ce au SID - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2019-03-21T17:00:02+00:00\",\"dateModified\":\"2022-11-21T16:09:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server : resynchroniser un login avec le user d&#8217;une base apr\u00e8s une restauration gr\u00e2ce au SID\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/797b9b6698fa35f7ce3e9a70a8b102ae\",\"name\":\"Emmanuel RAMI\",\"sameAs\":[\"https:\/\/blog.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/erami\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQL Server : resynchroniser un login avec le user d'une base apr\u00e8s une restauration gr\u00e2ce au SID - Capdata TECH BLOG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/","og_locale":"fr_FR","og_type":"article","og_title":"SQL Server : resynchroniser un login avec le user d'une base apr\u00e8s une restauration gr\u00e2ce au SID - Capdata TECH BLOG","og_description":"Voici un probl\u00e8me qui est bien connu des DBAs SQL Server en mati\u00e8re d&#8217;attributions de droits et mappings. Celui- ci est li\u00e9 \u00e0 la resynchronisation des logins et users bases de donn\u00e9es apr\u00e8s une restauration de bases. Au sein d&#8217;une&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2019-03-21T17:00:02+00:00","article_modified_time":"2022-11-21T16:09:19+00:00","og_image":[{"width":422,"height":150,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2019\/03\/sid_identiques.jpg","type":"image\/jpeg"}],"author":"Emmanuel RAMI","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Emmanuel RAMI","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/"},"author":{"name":"Emmanuel RAMI","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/797b9b6698fa35f7ce3e9a70a8b102ae"},"headline":"SQL Server : resynchroniser un login avec le user d&#8217;une base apr\u00e8s une restauration gr\u00e2ce au SID","datePublished":"2019-03-21T17:00:02+00:00","dateModified":"2022-11-21T16:09:19+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/"},"wordCount":953,"commentCount":2,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"articleSection":["SQL Server"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/","url":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/","name":"SQL Server : resynchroniser un login avec le user d'une base apr\u00e8s une restauration gr\u00e2ce au SID - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2019-03-21T17:00:02+00:00","dateModified":"2022-11-21T16:09:19+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/sql-server-resynchroniser-un-login-et-le-user-dune-base-apres-une-restauration-grace-au-sid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"SQL Server : resynchroniser un login avec le user d&#8217;une base apr\u00e8s une restauration gr\u00e2ce au SID"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/797b9b6698fa35f7ce3e9a70a8b102ae","name":"Emmanuel RAMI","sameAs":["https:\/\/blog.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/erami\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/7357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=7357"}],"version-history":[{"count":10,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/7357\/revisions"}],"predecessor-version":[{"id":9537,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/7357\/revisions\/9537"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/7360"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=7357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=7357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=7357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}