在没有凭据知识的情况下访问未加密的H2数据库

时间:2014-11-06 10:01:19

标签: h2

我们正在为客户清理服务器,并且使用H2数据库偶然发现了一个旧应用程序。虽然访问的应用程序在其配置文件中具有凭据,但它们似乎都不起作用。

即使是“sa”用户访问也是未知的。据我所知,“sa”的密码默认为空字符串,但拒绝使用“sa”/“”访问(用户名或密码错误[28000-182] 28000/28000(帮助))。 / p>

如上所述,数据库未加密。查看该文件,我可以看到表的SQL语句,甚至是一些表内容。

有没有办法获得对该数据库的访问权限?据我的搜索显示,只能使用“sa”用户。我正在寻找MySQL中“--skip-grant-tables”的内容。

1 个答案:

答案 0 :(得分:2)

最简单的解决方案可能是:

  1. 尝试在没有密码的情况下登录数据库。这将失败(用户名或密码错误),但它将运行事务日志恢复,以便数据库处于一致状态。
  2. 然后,使用恢复工具(org.h2.tools.Recover)生成SQL脚本。
  3. 编辑脚本:更改默认用户的密码。
  4. 运行脚本。这样你就可以得到一个新的数据库。