忘记密码 密码保护SqlServer备份文件恢复方法
2013-06-14 13:10
706 查看
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:\data\data.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语句,最后得到
Restore Database [aa] From disk='H:\data\data.bak'WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10,MOVE 'dzsc' TO'g:\aa.mdf', MOVE 'dzsc_log' TO 'g:\aa_log.ldf',Password = '已知密码';
还原成功!
设置密码保护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:\data\data.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语句,最后得到
Restore Database [aa] From disk='H:\data\data.bak'WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10,MOVE 'dzsc' TO'g:\aa.mdf', MOVE 'dzsc_log' TO 'g:\aa_log.ldf',Password = '已知密码';
还原成功!
相关文章推荐
- 忘记密码 密码保护SqlServer备份文件恢复方法
- 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
- 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
- MySQL忘记密码恢复密码的实现方法
- MySQL root密码忘记的恢复方法
- 2610XM路由器的恢复出厂设置,备份配置文件,修改密码,以及升级
- MySQL忘记密码恢复密码的实现方法
- Linux系统密码忘记后的五种恢复方法
- .httacces文件的密码保护和防止盗链的实现方法
- NBU 7.0异机恢复Linux备份文件的方法(四)
- Linux系统密码忘记后的五种恢复方法
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- CTF实验吧-忘记密码了【vim编辑器备份文件】
- Orace 11g 忘记了密码后,6种恢复方法
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
- 宝塔Linux面板忘记账号密码,恢复并设置方法
- WPF 提示"该密钥文件可能受密码保护。若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称"的解决方法
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- 破解Word文件密码保护的简单方法