在没有凭证知识的情况下访问未加密的 H2 数据库
Posted
技术标签:
【中文标题】在没有凭证知识的情况下访问未加密的 H2 数据库【英文标题】:Accessing unencrypted H2 database without credential knowledge 【发布时间】:2014-11-06 10:01:19 【问题描述】:我们正在为客户清理服务器,偶然发现了一个使用 H2 数据库的旧应用程序。虽然访问应用程序的配置文件中有凭据,但它们似乎都不起作用。
甚至“sa”用户的访问权限也是未知的。据我所知,“sa”的密码默认为空字符串,但使用“sa”/“”的访问被拒绝(错误的用户名或密码 [28000-182] 28000/28000(帮助))。
如前所述,数据库未加密。查看文件,我可以看到表的 SQL 语句,甚至可以看到一些表内容。
有什么方法可以访问该数据库?据我的搜索显示,只能使用“sa”用户。我正在从 mysql 中寻找类似于“--skip-grant-tables”的东西。
【问题讨论】:
【参考方案1】:最简单的解决方案可能是:
-
尝试不使用密码登录数据库。这将失败(用户名或密码错误),但它会运行事务日志恢复,以便数据库处于一致状态。
然后,使用恢复工具 (
org.h2.tools.Recover
) 生成 SQL 脚本。
编辑脚本:更改默认用户的密码。
运行脚本。这样你就得到了一个新的数据库。
【讨论】:
这听起来可行。谢谢你。将报告结果。以上是关于在没有凭证知识的情况下访问未加密的 H2 数据库的主要内容,如果未能解决你的问题,请参考以下文章