代码之家  ›  专栏  ›  技术社区  ›  William

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

  •  1
  • William  · 技术社区  · 15 年前

    我正在考虑在桌面应用程序中使用hsqldb 1.8.x版本来存储本地数据。从我所看到的,数据库以许多SQL语句的形式存储在磁盘上,以创建表、插入数据等。

    有没有一个简单的方法可以对用户隐藏这个?我不一定需要它完全加密,等等——我只是想防止临时用户仅仅打开文件并看到数据库的结构。

    3 回复  |  直到 8 年前
        1
  •  1
  •   Adamski    15 年前

    您可以将数据库文件嵌入到JAR文件中,并使用符号连接到这些文件:

    jdbc:hsqldb:res:<path in jar>
    

    退房 Advanced Topics 有关这方面的详细信息,请参阅hsqldb指南的部分。但是,我从未尝试过,所以不是100%确定它会起作用…

        2
  •  1
  •   William    15 年前

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

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

    要将.script文件以人类无法读取的形式存储,请执行以下操作:

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

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

        3
  •  0
  •   Imran Vohra    9 年前

    很遗憾,我无法执行以下命令
    db.update(“set scriptform compressed”);

    并且得到了这个错误

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

    这个错误用这个命令解决了
    db.update(“set files script format compressed”);

    我正在使用hsqldb 2.3.3