一般来说,当我们恢复一个数据库时, 数据库的登陆ID,需要用sp_addlogin ,重新添加一次即可。
然后执行sql命令:select sid from newdb..sysusers where name='wblUser',记下此sid数值.
再执行sql 命令: sp_addlogin 'wblUser','wbl','newdb',null,@sid,null 。
但是有时候新恢复的新数据库newdb , 对应的SID 和电脑上已经存在的oldDB 的 user对应的登陆id不一样,
这样在恢复的时候会提示 user已经存在, 有两种解决办法
1. 新建一个登陆ID: wblUser_new , 用新用户wblUser_new登陆
sp_addlogin 'wblUser_new','wbl','newdb',null,@sid,null
2.还有另一种办法,两个数据库共用wblUser.
通过下面的SQL代码,可以将当前数据库的参数做修改:
Use Master
GO
sp_configure 'allow updates', 1
reconfigure with override
GO
该语句将当前数据库的参数“是否允许修改系统表”的值置1,即允许用户修改系统表
然后将该数据库中sysusers这个表中 wblUser 的SID直接UPDATE成当前服务的SID。
然后执行sql命令:select sid from olddb..sysusers where name='wblUser',记下此sid数值.
update newdb..sysusers set sid = @SID where name = 'wblUser'
这时,用wblUser登陆,就可以同时操作两个已恢复的数据库了。