1

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

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

4

3 回答 3

1

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

jdbc:hsqldb:res:<path in jar>

查看 HSQLDB 指南的高级主题部分以获取更多信息。但是,我从未尝试过,所以不能 100% 确定它会起作用......

于 2009-08-24T14:45:00.617 回答
1

我现在采用的解决方案是调用:

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

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

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

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

于 2009-08-24T16:44:05.700 回答
0

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

并收到此错误

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

使用此命令解决了此错误
db.update("SET FILES SCRIPT FORMAT COMPRESSED");

我正在使用 HSQLDB 2.3.3

于 2015-11-17T14:07:07.957 回答