忘记密码 密码保护SqlServer备份文件恢复方法
Sql sever有这么一功能 设置密码保护SqlServer数据库备份文件! 备份SqlServer数据库 但是忘记密码后怎么还原数据库?
在备份文件SSET结构中,也就是sql2005备份文件的第三扇区。第0x7a(一般是这样)字节开始16个字节就是密码。 圈出来的偏移72字节 Data Set Password 就是记录密码的地址,User Name 就是做备份的用户。 通过语句备份一个有密码保护的数据库,然后用第三扇区的0x7a字节开始的16字节copy到要恢复的不知道密码的备份文件的相同位置覆盖。 然后 Restore?Database?[aa]?From?disk='H:datadata.bak'WITH?FILE?=?1,?NOUNLOAD,?REPLACE,?STATS?=?10,MOVE?'dzsc'?TO'g:aa.mdf',?MOVE?'dzsc_log'?TO?'g:aa_log.ldf',Password?=?'已知密码'; FILE?=?1数据文件的id 'dzsc','dzsc_log'库文件的逻辑名,如果不知道,去掉(MOVE?'dzsc'?TO?'g:aa.mdf',?MOVE?'dzsc_log'?TO'g:aa_log.ldf'),执行一下语句就知道了。 同一个库?做两个无密码备份,一个密码为1的备份,一个密码为2的备份 通过两个无密码文件对比知道哪里有差异,a 通过一个无密码和一个有密码文件对比,知道哪里有差异?b1 通过一个无密码和另一个有密码文件对比,知道哪里有差异?b2 a和b1的差异有多大,差异最大的位置在哪里。T1 a和b2的差异有多大,差异最大的位置在哪里.T2 发现T1=T2. 将其中一个有密码备份的T1位置的数据(16字节)换成另一个有密码备份的T2位置的数据, 执行Restore Database [数据库] From disk='c:mysql.bak' With Password = '123'; 根据提示的错误修改sql语句,最后得到 =?'已知密码'; 还原成功! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |