我要在本地的ms sqlserver中还原别人的一个数据库。还原操作提示成功。
这个数据库中有N多别人建的表和存储过程,属于一个我数据库中不存在的用户。
这个用户删不掉,提示拥有对象。
在用此用户登陆的时候,提示登陆失败。
如果换用自己建的用户登陆,则无法使用原用户的表和存储过程。
请问如何才能登陆数据库并使用原用户的表和存储过程?

解决方案 »

  1.   

    用dbo登陆那个数据库,然后
    delete sysusers where name='username', username就是你那个恢复数据库中的用户,删除之后就用企业管理器再建立一个同样名称的帐号登陆就行了要了解详细的信息可以google一下“孤儿帐号”
      

  2.   

    Manger  SQL Server 2000解决孤立用户问题 我在本机上创建一个数据库DatabaseA,登录名LoginA对应UserA,赋给UserA相应的权限。
    然后,把DatabaseA.MDF和DatabaseA.LDF拷到别的服务器B上附加上。
    想用LoginA登录到服务器B。
    结果失败!
    此问题可以解决吗?Answer: 
    把数据库备份还原到另一个服务器时,可能会遇到孤立用户的问题。下面的方案显示并解决了这个问题: 通过执行 sp_addlogin,把登录 janetl 改名为 dbo。 
    sp_addlogin 'janetl', 'dbo'
    备份数据库。在本例中,备份 Northwind。 
    BACKUP DATABASE Northwind
    TO DISK = 'c:\mssql\backup\northwnd'除去刚刚备份的数据库。 DROP DATABASE Northwind除去登录。 sp_droplogin 'janetl'还原备份的数据库。 
    RESTORE DATABASE Northwind
    FROM DISK = 'c:\mssql\backup\northwnd'select * from sysusersjanetl 登录不能访问 Northwind 数据库,除非允许 guest 登录。尽管 janetl 登录已经删除,它仍然(作为一个孤立行)显示在 sysusers 表中:USE Northwind
    SELECT *
    FROM sysusers
    WHERE name = 'janetl'解决孤立用户问题 用 sp_addlogin 添加一个临时登录。为孤立用户指定安全标识符 (SID)(从 sysusers)。 
    sp_addlogin @loginame = 'nancyd',
        @sid = 0x32C864A70427D211B4DD00104B9E8A00用 sp_dropalias 除去属于别名 SID 的临时别名。 sp_dropalias 'nancyd'用 sp_dropuser 除去原始用户(即现在的孤立用户)。 sp_dropuser 'janetl'用 sp_dropuser 除去原始登录。 sp_droplogin 'nancyd'
      

  3.   

    xhc_ozh(孤帆远影)  的方法我没试成功
    不过他的  “要了解详细的信息可以google一下“孤儿帐号””
    让我找到了答案
    谢谢!给分!