Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HSQLDB-对用户隐藏数据库结构/内容_Java_Hsqldb - Fatal编程技术网

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

Java HSQLDB-对用户隐藏数据库结构/内容,java,hsqldb,Java,Hsqldb,我正在考虑在桌面应用程序中使用HSQLDB 1.8.x版来存储本地数据。据我所见,数据库作为许多SQL语句存储在磁盘上,用于创建表、插入数据等 有没有一种简单的方法可以向用户隐藏这一点?我不需要对其进行完全加密,等等-我只想防止临时用户简单地打开文件并查看数据库的结构。您可以将数据库文件嵌入jar文件中,并使用符号连接到它们: jdbc:hsqldb:res:<path in jar> jdbc:hsqldb:res: 有关这方面的更多信息,请参阅《HSQLDB指南》的一节。但是

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


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

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

jdbc:hsqldb:res:<path in jar>
jdbc:hsqldb:res:

有关这方面的更多信息,请参阅《HSQLDB指南》的一节。但是,我从未尝试过,因此我无法100%确定它是否有效……

目前我采用的解决方案是调用:

db.update("SET SCRIPTFORMAT COMPRESSED;");
要以人类无法读取的形式存储.script文件,请执行以下操作:

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

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

不幸的是,我无法执行下面的命令
更新(“设置脚本格式压缩”)

这是一个错误

java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: SCRIPTFORMAT
使用此命令解决此错误
更新(“设置文件脚本格式压缩”)


我使用的是HSQLDB2.3.3

版本2.x中的命令是
SET FILES脚本压缩格式