解决SQL Server 2008 错误15023:当前数据中已存在用或角色,SQLServer2008,错误15023,

 

在使用SQL Server 2008,我们经常会遇到一个情况:需要把一台服器上的数据库转移到另外一台服器上。而移完成后,需要一个"登"关联一个"用",往往会错误

      “错误15023:当前数据中已存在用或角色

        问题非常棘手,几排常找到了原因与解决方法,因为这问题与解决方法均比较复杂,所以把程中的一些经验纪录下来与大家分享,希望能大家以后的似操作有所帮助。

        原因及解决法如下:

        首先介一下sql server中“登”与“用”的区,“登”用于用身份验证,而数据“用帐户用于数据库访问验证。登安全识别符 (SID) 与用户关联。将数据到其他服,数据中包含一限,但可能没有相的登或者登关联的用可能不是相同的用这种情况被称存在“孤立用”。此是不能通新建登或者是同名登授予对应数据的“用限来解决登录问题,因SQL Server会出“错误15023:当前数据中已存在用或角色”,了解决问题,需要用系储过程sp_change_users_login,具体用法如下:


Use newzs

go
sp_change_users_login 'update_one', 'infos1', 'infos1'

       
其中newzs
存在孤立用的数据update_one是存储过程的参数,表示只理一个用,前一个infos1是“用”,后一个infos1是“登”,以上个SQL表示将服器登infos1”与 newzs数据infos1”重新接起来。这样就可以正常使用数据

 

慎于行,敏于思!GGGGGG