加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

忘记密码 密码保护SqlServer备份文件恢复方法

发布时间:2020-12-12 13:58:40 所属栏目:MsSql教程 来源:网络整理
导读:Sql sever 有这么一功能 设置密码保护 SqlServer 数据库备份 文件 ! 备份 SqlServer 数据库 Backup Database [ 数据 库 ] To disk='c:mysql.bak' With Password = '123', in it; 恢复 SqlServer 数据库 Restore Database [ 数据库 ] From disk='c:mysql.b

Sql sever有这么一功能

设置密码保护SqlServer数据库备份文件

备份SqlServer数据库
Backup Database [数据
] To disk='c:mysql.bak' With Password = '123',init;
恢复SqlServer
数据库
Restore Database [
数据库] From disk='c:mysql.bak' With Password = '123';

但是忘记密码后怎么还原数据库?

在备份文件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

ab1的差异有多大,差异最大的位置在哪里。T1

ab2的差异有多大,差异最大的位置在哪里.T2

发现T1=T2.

将其中一个有密码备份的T1位置的数据(16字节)换成另一个有密码备份的T2位置的数据,

执行Restore Database [数据库] From disk='c:mysql.bak' With Password = '123';

根据提示的错误修改sql语句,最后得到

=?'已知密码';

还原成功!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读