我正在考虑在桌面应用中使用HSQLDB版本1.8.x来存储本地数据。从我所看到的,数据库作为一些SQL语句存储在磁盘上,以创建表,插入数据等。
有没有一种简单的方法可以将其隐藏起来?我不一定需要它完全加密等等 - 我只是想阻止临时用户只是打开文件并看到数据库的结构。
答案 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