帮朋友搬数据Discuz!NT2.0的,访问网站出错,数据库用户登录失败

     今晚朋友说搬Discuz!NT 2.0 数据出错,老搬到新服务器,老出错不能访问。后来找我帮他搬数据。
 
     在没事有空之余,在新服务器,配置上了.net2.0,并建设新用户和空间,给了用户支持权限,数据库是采用安装SQL2000的版本。
     以上完成后,访问 [url]http://127.0.0.1[/url],出现:
      
      无法打开登录 'sq_wwwxxx' 中请求的数据库。登录失败。
      用户 'sq_wwwxxxx' 登录失败。
 
      这时发现数据库用户登陆不上数据库,出错提示。
 
      我后来把数据库用户和数据库都删了,重新建设,在用户授权数据库出现:
      错误 21002: [SQL-DMO]用户'sq_wwwxxxx' 已经存在。
     无法对接数据库'sq_wwwxxxx'
 
     想想在网上找一下相关参考资料,明白了解决方法:
    MSSQL2000迁移数据库或者还原数据库后,新建相同用户名的时候或者指定数据库登录用户时出现错误提示“错误21002: [SQL-DMO]用户'sq_wwwxxxx' 已经存在
 
产生原因:
这就是我们通常所说的“孤立用户”,所谓孤立用户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而
在master数据库的syslogins中却没有对应的记录。
孤立帐户产生的原因一般是以下两种:
1.将备份的数据库在其他机器上还原;
2.重装系统,或SQL SERVER之后只还原了用户库。

解决办法:
解决办法是使用sp_change_users_login来修复。
sp_change_users_login的用法有三种。

修复方法:
步骤1:
打开查询分析器,进入对应数据库运行以下命令
exec sp_change_users_login 'REPORT'
列出当前数据库的孤立用户
步骤2:
exec sp_change_users_login 'AUTO_FIX','USERNAME'
可以自动将用户名所对应的同名登录添加到syslogins中。
步骤3:
exec sp_change_users_login 'UPDATE_ONE','USERNAME','DENG LU MING'
将用户名映射为指定的登录名。
运行完以上三个命令,你再试试看,用户就能正常登录了。
 
      看不懂英文意思,我帮大家解释一下:'USERNAME','DENG LU MING'它的意思是:“数据库用户名”,“登录名”
 
     以上命令执行完后,就可以打开“企业管理器”,“登陆用户”添加授权数据库了。
 
       希望以上同和我一样出错的朋友,有所帮助!晚安..........

你可能感兴趣的:(数据库,数据,网站,discuz,休闲)