• SQL用户恢复


    [转]这一文章的主题是如何把sql 2000 上的数据库迁移到 sql 2005上面来。

    一、准备工作:备份 sql 2000上的数据库,形成 bak 文件。在 目标机器的 sql 2005 上新建立同名空数据库,选择还原操作。这时,应该会出现

    错误:SQl Server2005 目录失败,出现操作系统错误...

    二、原因分析:在还原数据库的时候, bak文件存储了原始数据库的存储路径,这个路径在新数据库所在机器上不存在,所以这里要使用sql语句进

    行还原,还原的时候需要更改一下 mdf、ldf文件的位置。

    1、 SQL 2005  新建同名数据库,保存在:
    C:\Program Files\Microsoft SQL Server\MSSQL\data\

    2、在查询分析器执行以下语句:
    RESTORE  DATABASE  AcafaDb  FROM  DISK  = 'C:\AcafaDb.bak'  with replace,
    MOVE  'AcafaDb_Data'  TO  'C:\Program  Files\Microsoft  SQL Server\MSSQL\Data\AcafaDb_Data.MDF',
    MOVE 'AcafaDb_log'  TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\AcafaDb_Log.LDF'

    注意:
    1)、C:\AcafaDb.bak 是数据库备份文件的路径
    2)、C:\Program  Files\Microsoft SQL Server\MSSQL\Data\AcafaDb_Data.MDF 是保存数据库文件的路径
    3)、C:\Program Files\Microsoft SQL Server\MSSQL\Data\AcafaDb_Log.LDF 是保存数据库日志文件的路径

    3、成功还原后,数据库原来的登录用户,变成了孤立用户。
    所谓孤立用户,就是某个数据库帳戶只有用户名,而没有登录名,这样用户在用户表 sysusers 中存在,而在 master 数据库的syslogins 中没有对

    应的记录。

    孤立用户的产生一般是以下两种原因形成的:
    1).将备份的数据库在其他机器上还原;
    2).重装系统或SQL SERVER 只还原了用户库

    解决办法是使用系统自带的存储过程 sp_change_users_login 来修复:

    USE AcafaDb;
    GO
    EXEC sp_change_users_login 'Auto_Fix', 'acafacom', NULL, 'password';
    GO
     
    意思是:修复用户名acafacom,密码为password


     

  • 相关阅读:
    3步学会用gulp
    div需要重置吗?
    HTML元素遮挡Flash之梦
    移动WEB开发常用技巧
    四:分组查询
    三:函数
    二:查询
    一:MySQL
    三:JVM(重点)
    二:JAVA通知唤醒机制,Lock替换synchronize
  • 原文地址:https://www.cnblogs.com/acafaxy/p/1986964.html
Copyright © 2020-2023  润新知