HSQLDB - 隐藏用户的数据库结构/内容

时间:2009-08-24 14:35:29

标签: java hsqldb

我正在考虑在桌面应用中使用HSQLDB版本1.8.x来存储本地数据。从我所看到的,数据库作为一些SQL语句存储在磁盘上,以创建表,插入数据等。

有没有一种简单的方法可以将其隐藏起来?我不一定需要它完全加密等等 - 我只是想阻止临时用户只是打开文件并看到数据库的结构。

3 个答案:

答案 0 :(得分:1)

您可以将数据库文件嵌入到jar文件中,并使用以下符号连接到它们:

jdbc:hsqldb:res:<path in jar>

有关详细信息,请查看HSQLDB指南的Advanced Topics部分。但是,我从来没有尝试过,所以我不能100%确定它会起作用......

答案 1 :(得分:1)

我现在使用的解决方案是打电话:

db.update("SET SCRIPTFORMAT COMPRESSED;");

以。人类不可读的形式存储.script文件,并且:

db.update("SET PASSWORD password;");

以防止更精明的用户使用自己的HSQLDB客户端打开数据库。

答案 2 :(得分:0)

不幸的是我无法执行以下命令
db.update(&#34; SET scriptformat COMPRESSED&#34;);

正在收到此错误

java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: SCRIPTFORMAT

此错误通过此命令解决了 db.update(&#34; SET FILES SCRIPT FORMAT COMPRESSED&#34;);

我正在使用HSQLDB 2.3.3