zoukankan      html  css  js  c++  java
  • 学习:恢复被孤立的数据库dbo (转)

     

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

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

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

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

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

    1EXEC sp_change_users_login 'Update_One''dbo''NT AUTHORITY\SYSTEM'

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

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

    use master
    select * from syslogins

    找出要设定的用户的SID

    然后使用以下语句更新

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

    搞定,呵呵。

    文章出自:http://www.cnblogs.com/baoposhou/archive/2006/01/16/318212.html
  • 相关阅读:
    输入属性,输出属性
    angular响应式表单
    angular 响应式表单指令
    c++ Primer
    CString 操作函数
    字符串分割strtok_s
    LPSTR LPTSTR
    CString分割切分
    CStringArray
    十进制
  • 原文地址:https://www.cnblogs.com/LeimOO/p/1422159.html
Copyright © 2011-2022 走看看