SQL Server中数据库恢复后用户无法登录问题的解决

今天碰到一个问题,朋友把数据从产品库导到开发库上来,数据库用的是SQL Server,方法是在产品库上备份,然后到开发库上恢复,两边的数据库用户名密码都一样,可是恢复完后却不能登录,原因很简单,SQL Server是登录时把服务器的login映射到database的user,整个库备份恢复后,database的用户的名字虽然和以前一样,但实际的内部编码已经不同了,所以在开发库上登录时是映射不到恢复后的数据库里的用户去的,但是怎么解决最方便呢?

开始想把恢复后的数据库里的用户删掉重建,可是这个用户拥有很多表,删不了。

后来想把服务器的login删了重建,可是重建时提示在database里已经有同名用户,也不行。

最后找到一个还算简单的办法:
1、 打开允许更新系统表选项
在企业管理器的服务器属性里,选择服务器设置标签,选中“允许对系统目录直接进行修改”

2、执行以下SQL语句,假设用户名是myuser,恢复的数据库是mydb

use master

DECLARE @SID varbinary(85)

SELECT @SID = sid FROM sysxlogins where [name]='myuser'

update mydb.dbo.sysusers set sid=@sid where name='myuser'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值