我在从新安装了系统之后,还原以前的数据库结果无法使用了!原因是以前的数据库使用的是建立的用户,在还原后该用户也一并还原了但是该用户的登录信息未能还原而先建立登录用户,再还原数据库后,然后将登录用户绑定到数据库时提示用户已经存在!求解决方案啊,救命~~~~~

解决方案 »

  1.   

    如果还原数据库同时还原用户可在系统表sysusers中找到对应的sid
    用sp_addlogin [ @loginame = ] 'login' 
        [ , [ @passwd = ] 'password' ] 
        [ , [ @defdb = ] 'database' ] 
        [ , [ @deflanguage = ] 'language' ] 
        [ , [ @sid = ] sid ] 
        [ , [ @encryptopt= ] 'encryption_option' ] 
    加上关联.
    或是用
    sp_change_users_login将现有数据库用户映射到 SQL Server 登录名。 
     Transact-SQL 语法约定语法
     
    sp_change_users_login [ @Action = ] 'action' 
        [ , [ @UserNamePattern = ] 'user' ] 
        [ , [ @LoginName = ] 'login' ] 
            [ , [ @Password = ] 'password' ]
     
      

  2.   

    1. 查看某个数据库的孤立用户:USE 库名EXEC sp_change_users_login 'Report' 2. 自动修复某个孤立用户:USE 库名EXEC sp_change_users_login 'Auto_Fix', '孤立用户名', NULL, '密码'    --密码指用户对应的登录不存在时, 系统自动建立登录, 为登录分配的密码
      

  3.   

    当前没有建立用户时,用sp_add_login解决
    建立用户后恢复数据库(数据库所有者为建立的用户)此时用sp_change_users_login 解决
      

  4.   

    我已经建立好登录用户,然后数据库恢复完成后运行sp_change_users_login 'Auto_Fix', 'user1', NULL, 'password'提示服务器: 消息 8144,级别 16,状态 2,过程 sp_change_users_login,行 0
    为过程或函数 sp_change_users_login 指定的参数太多。
      

  5.   

    不这样弄
    试一下
    sp_change_users_login @Action = 'Update_One' 
    , @UserNamePattern =  'user1'
    , @LoginName =  'user1'
    ,@Password ='pwd'
      

  6.   

    成功了,刚查到,在使用 sp_change_users_login 时,没有 password参数而LoginName 必须已经存在谢谢楼上二位
      

  7.   

    表已经恢复完毕,有孤立用户 user1在登录中已建立登录用户 user2sp_change_users_login @Action = 'Update_One' 
    , @UserNamePattern =  'user1'
    , @LoginName =  'user2'可将 user1 与 user2 关联