还原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'