学习:恢复被孤立的数据库dbo (转)

 

SQL Server数据库,备份文件在另一台机算机上还原后,发现在企业管理器中表现为dbo的登录帐号为空,经过查找发现是dbo被孤立,dbo 用户具有显示登录帐户,但该用户在 sysusers 系统表中的 SID与该登录帐户在 syslogins 系统表中的 SID 不匹配。

可以用以下查看dbo的sid是否孤立:

1 None.gif SELECT  u.name  AS  "Name",  ISNULL (l.name,  ' dbo is unmatched ' AS  "Matched Login"
2 None.gif
3 None.gif FROM  sysusers u
4 None.gif
5 None.gif LEFT   JOIN  master.dbo.syslogins l  ON  u.sid  =  l.sid
6 None.gif
7 None.gif WHERE  u.name  =   ' dbo '
8 None.gif
9 None.gif

出现此问题的原因在这篇KB文章中有说明:http://support.microsoft.com/kb/305711/zh-cn

但是当我使用上面KB中的方法:

1 None.gif EXEC  sp_change_users_login  ' Update_One ' ' dbo ' ' NT AUTHORITY\SYSTEM '

提示:将终止此过程。对于此过程中的登录名参数,'dbo' 是禁止使用的值。hitwall.gif

马上查看msdn,才知道sp_change_users是禁止更改dbo,guest 或 INFORMATION_SCHEMA用户的
那怎么办呢?自己手动更新dbo的SID吧。过程如下:

None.gif use  master
None.gif
select   *   from  syslogins

找出要设定的用户的SID

然后使用以下语句更新

 1 None.gif SP_CONFIGURE  ' allow updates ' , 1  
 2 None.gif RECONFIGURE   WITH  OVERRIDE
 3 None.gif GO
 4 None.gif
 5 None.gif UPDATE  sysusers  SET  sid = SID信息  WHERE  NAME = ' dbo '
 6 None.gif Go
 7 None.gif
 8 None.gifsp_configure  ' allow updates ' 0  
 9 None.gif reconfigure   with  override
10 None.gif Go  
11 None.gif
12 None.gif

搞定,呵呵。

文章出自: http://www.cnblogs.com/baoposhou/archive/2006/01/16/318212.html

转载于:https://www.cnblogs.com/LeimOO/archive/2009/03/26/1422159.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值