SQLSERVER孤立用户解决方法

在数据库强制备份后,进入备份的数据库,可以用
   exec sp_change_users_login 'update_one','[loginName]','[loginName]'

恢复登陆用户。

或者使用如下存储过程   


create  PROCEDURE [restore_login_user]
--INPUT
@DBName             nvarchar(50),
@UserName           nvarchar(50)
AS
    Exec sp_configure 'allow updates',1
    RECONFIGURE WITH OVERRIDE
   
    Declare @ExecStr nvarchar(4000) 
  
    Select @ExecStr ='Declare @b varbinary(85) ' +
                    'Use Master '
                    + 'Select @b = sid From syslogins Where Name =''' + @UserName + ''''
                    + ' Use ' + @DBName
                    + ' Update sysusers Set sid = @b Where name =''' + @UserName + ''''

    --Print @ExecStr
    Exec(@ExecStr)

    Exec sp_configure 'allow updates',0
    RECONFIGURE WITH OVERRIDE

posted on 2006-11-22 10:44  旭日东生  阅读(560)  评论(0编辑  收藏  举报