一个老的Sybase SQL Anywhere数据库 db 文件忘记DBA密码,登陆时总是提示: invalid user id or password, 怎么都不能打开,google狂搜,得到一个替换密码的解决方案:
使用UltraEdit、WinHex等二进制编辑工具打开数据库文件,通过查找“DBA”(16进制使用“44 42 41”),定位到底一个位置,注意观察这个区域,前面一般有“dbo”、“PUBLIC”,后面有“SYS”。这个区域就是ASA保存用户口令的数据段。把“SYS”之前四个空字符 “00 00 00 00”之前到“44 42 21”之间的所有16进制数据,替换为如下16进制数(代表SQL):
- B DF 7D B5 77 B2
- 67 6D C2 DB D6 E7 F2 64 28 C3 55 22 97 F5
- C F5 8C 0F 8C C5 71 BA 15 C9 5E BC 43 01 59 01
- 59 01 4E 01 4E 01 4E 17 00 00
替换后,DBA密码就是“SQL”了。重新运行输入密码,可以正常打开库使用