还原数据库,恢复SQLSERVER登录名的问题

 

还原SQLSERVER数据库,原来的数据库的于当前SQLSERVER同名用户就不能再登录了,原因是当前SQLSERVERD的master数据库的sysxlogins表的的sid与还原后的数据库的sysusers表里的sid不一致造成的,直接 update 还原后的数据库的sysusers表默认是不被SQLSERVER允许的. 但是可以使用 sp_change_users_login 存储过程来同步用户sid,这样以前数据库的用户也就可以登录.

 

例如,我还原后的数据库是 demo ,原来的数据库用户: demo

 

use db
select SID from sysusers where name ='demo'
use master
select SID from sysxlogins where name = 'demo'
use db
exec sp_change_users_login 'update_one' , 'demo' , 'demo'

 

posted @ 2013-11-28 10:50  浮云的等待  阅读(598)  评论(0编辑  收藏  举报