昨天在逛网页的时候看到这一篇帖子
http://blogs.msdn.com/b/apgcdsd/archive/2013/10/23/10459397.aspx
其中
SQL Server 2005 – 当Checksum失败时的数据恢复可能
部分你可以看到,他通过16进制编译器,模拟了一个破坏性试验
“-- 通过16进制编辑器来引入checksum失败”
我照这他的不走做,这一步就是玩不来了啊,
首先他那个修改截图,到底是修改的mdf还是log文件啊?
那东西能通过16进制编译器看到明文?
还是说这是微软内部黑科技才能修改看到的?
求解惑
若真的可以明文读取,这得多方便啊,比如获取log中的误删记录什么的

解决方案 »

  1.   

    数据库未加密的前提下,数据文件(.mdf)可以用Visual Studio以十六进制格式打开及编辑.
    可看到数据库中的表数据.
      

  2.   

    关于误删记录的恢复,直接从日志文件恢复的方法应该没有.
    不过MSSQL有提供一些方法可实现误删恢复,
    如数据库快照,指定时间点的数据库还原等,LZ可了解一下..或找最近的数据库备份还原为其他名字的数据库,然后单独抽取误删的记录回来.
      

  3.   

    你想直接修改mdf/log的内容,那就可以黑微软数据库了获取日志记录,有专门的logexplorer读取。
      

  4.   

    logexplorer不是2008不能用嘛,,,
    至于还原什么的,,,文件太大速度太慢,而且非full模式不能用
    数据库未加密的前提?是指什么操作?我是按照那个网页的步骤创建的测试用例,但是打开16进制文件,无法找到对应文字啊
    还是说他的测试案例是2005才能用,,我的2008R2就不能这么玩了?
      

  5.   

    通过dbcc page也可以查看数据的,另外,还有一个命令--直接写数据页面
    DBCC writepage(数据库id,fileid,页id,偏移量,字节数,0x6161616161)
    可以直接修改mdf中的数据,这些研究研究还行,不太可能用来直接读取大量的日志和文件数据
      

  6.   

    默认情况下数据库是未加密的.步骤:
     1.卸离数据库.
     2.找到对应的数据文件(.mdf)->右键->属性->安全->添加everyone完全控制权限.
     3.右键->打开方式->选择Visual Studio打开.
      

  7.   

    当然是修改MDF或者NDF文件。CHECKSUM只对数据文件生效。LDF是没有CHECKSUM的。
    如果没有启用加密,MDF和NDF文件是可以看的,可以直接用DBCC读取某个数据页。
      

  8.   

    默认情况下数据库是未加密的.步骤:
     1.卸离数据库.
     2.找到对应的数据文件(.mdf)->右键->属性->安全->添加everyone完全控制权限.
     3.右键->打开方式->选择Visual Studio打开.

    研究了半天虽然能正常打开,,但是搜索不到我创建的表里的数据,研究了一下,计算偏移量真痛苦,虽然成功更改了,是可以直接修改数据页啦,不过有个问题- -
    这货无法体现我想做的破坏性试验啊- -
    orz
      

  9.   

    如下测试,use DBAP2create table csdn
    (username char(20))insert into csdn(username)
     select 'starseeker7'select username from csdn/*
    username
    --------------------
    starseeker7         (1 row(s) affected)
    */
    1.卸离数据库.
    2.找到对应的数据文件(.mdf)->右键->属性->安全->添加everyone完全控制权限.
    3.右键->打开方式->选择Visual Studio打开.
      Visual Studio中按[Ctrl]+[F]打开查找对话框,输入查找内容"starseeker7",
      是可以定位到的喔.
    查找结果,
      

  10.   

    默认情况下数据库是未加密的.步骤:
     1.卸离数据库.
     2.找到对应的数据文件(.mdf)->右键->属性->安全->添加everyone完全控制权限.
     3.右键->打开方式->选择Visual Studio打开.

    研究了半天虽然能正常打开,,但是搜索不到我创建的表里的数据,研究了一下,计算偏移量真痛苦,虽然成功更改了,是可以直接修改数据页啦,不过有个问题- -
    这货无法体现我想做的破坏性试验啊- -
    orz可以体现你要的破坏性试验,比如上面的dbcc writepage 如果你写的字节数是10,后面写的也是10个字节,
    但你的字段类型是6,那么就会起到破坏性,导致这个表损坏,我做个试验的
      

  11.   

    LZ参考的帖子 http://blogs.msdn.com/b/apgcdsd/archive/2013/10/23/10459397.aspx
    应该是想模拟存储介质损坏的情况,俺的测试仅是提供这个'破坏'方法而已,见笑了.
    至于如何恢复,应该看一下LZ参考的帖子,我还没细看.