0

我有一组 hsqldb 格式的数据库文件(即.data.properties文件.script),但管理它们的人以前退出并且没有留下任何凭据。当我尝试使用任何方式连接到数据库以访问独立的基于文件的数据库(例如 SqlTool 或 DatabaseManager)时,传递默认的“sa”用户和默认的空密码,我得到类似的东西:

java.sql.SQLException:找不到用户:SA
        在 org.hsqldb.jdbc.Util.sqlException(未知来源)
        在 org.hsqldb.jdbc.jdbcConnection.(未知来源)
        在 org.hsqldb.jdbcDriver.getConnection(未知来源)
        在 org.hsqldb.jdbcDriver.connect(未知来源)
        在 java.sql.DriverManager.getConnection(DriverManager.java:582)
        在 java.sql.DriverManager.getConnection(DriverManager.java:185)
...

有没有办法轻松绕过整个 hsqldb 身份验证和授权方案,只需重置“sa”用户的全部权限?我已经挖掘了整个 hsqldb 文档并通过 Google 进行了一些研究,但我找不到任何方法来绕过它?

或者如果没有暴力破解是完全不可能的(即文件实际上是用给定的密码加密的)?这个问题提到密码存储在.script文件中,但看起来我使用命令设置COMPRESSEDBINARY格式化(我无法用肉眼分辨哪一个) ,尽管我在文件SET SCRIPTFORMAT中看到原始的实时字符串数据.data. 是否可以解密 BINARY 格式?

4

1 回答 1

1

如果您在 .data 文件中看到明文字符串,则说明数据库未加密。

由于 HSQLDB 是开源的,您可以编辑源代码以在打开数据库时将用户名和密码打印到控制台。User找到为此目的命名的类。加密数据库无法做到这一点,如果没有加密密钥,这些数据库根本无法打开。

于 2012-01-12T10:12:14.353 回答