昨天在逛网页的时候看到这一篇帖子
http://blogs.msdn.com/b/apgcdsd/archive/2013/10/23/10459397.aspx
其中
SQL Server 2005 – 当Checksum失败时的数据恢复可能
部分你可以看到,他通过16进制编译器,模拟了一个破坏性试验
“-- 通过16进制编辑器来引入checksum失败”
我照这他的不走做,这一步就是玩不来了啊,
首先他那个修改截图,到底是修改的mdf还是log文件啊?
那东西能通过16进制编译器看到明文?
还是说这是微软内部黑科技才能修改看到的?
求解惑
若真的可以明文读取,这得多方便啊,比如获取log中的误删记录什么的
http://blogs.msdn.com/b/apgcdsd/archive/2013/10/23/10459397.aspx
其中
SQL Server 2005 – 当Checksum失败时的数据恢复可能
部分你可以看到,他通过16进制编译器,模拟了一个破坏性试验
“-- 通过16进制编辑器来引入checksum失败”
我照这他的不走做,这一步就是玩不来了啊,
首先他那个修改截图,到底是修改的mdf还是log文件啊?
那东西能通过16进制编译器看到明文?
还是说这是微软内部黑科技才能修改看到的?
求解惑
若真的可以明文读取,这得多方便啊,比如获取log中的误删记录什么的
可看到数据库中的表数据.
不过MSSQL有提供一些方法可实现误删恢复,
如数据库快照,指定时间点的数据库还原等,LZ可了解一下..或找最近的数据库备份还原为其他名字的数据库,然后单独抽取误删的记录回来.
至于还原什么的,,,文件太大速度太慢,而且非full模式不能用
数据库未加密的前提?是指什么操作?我是按照那个网页的步骤创建的测试用例,但是打开16进制文件,无法找到对应文字啊
还是说他的测试案例是2005才能用,,我的2008R2就不能这么玩了?
DBCC writepage(数据库id,fileid,页id,偏移量,字节数,0x6161616161)
可以直接修改mdf中的数据,这些研究研究还行,不太可能用来直接读取大量的日志和文件数据
1.卸离数据库.
2.找到对应的数据文件(.mdf)->右键->属性->安全->添加everyone完全控制权限.
3.右键->打开方式->选择Visual Studio打开.
如果没有启用加密,MDF和NDF文件是可以看的,可以直接用DBCC读取某个数据页。
1.卸离数据库.
2.找到对应的数据文件(.mdf)->右键->属性->安全->添加everyone完全控制权限.
3.右键->打开方式->选择Visual Studio打开.
研究了半天虽然能正常打开,,但是搜索不到我创建的表里的数据,研究了一下,计算偏移量真痛苦,虽然成功更改了,是可以直接修改数据页啦,不过有个问题- -
这货无法体现我想做的破坏性试验啊- -
orz
(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",
是可以定位到的喔.
查找结果,
1.卸离数据库.
2.找到对应的数据文件(.mdf)->右键->属性->安全->添加everyone完全控制权限.
3.右键->打开方式->选择Visual Studio打开.
研究了半天虽然能正常打开,,但是搜索不到我创建的表里的数据,研究了一下,计算偏移量真痛苦,虽然成功更改了,是可以直接修改数据页啦,不过有个问题- -
这货无法体现我想做的破坏性试验啊- -
orz可以体现你要的破坏性试验,比如上面的dbcc writepage 如果你写的字节数是10,后面写的也是10个字节,
但你的字段类型是6,那么就会起到破坏性,导致这个表损坏,我做个试验的
应该是想模拟存储介质损坏的情况,俺的测试仅是提供这个'破坏'方法而已,见笑了.
至于如何恢复,应该看一下LZ参考的帖子,我还没细看.