2009-08-24 8 views
1

Je considère HSQLDB version 1.8.x dans une application de bureau pour stocker des données locales. D'après ce que je peux voir, la base de données est stockée sur le disque comme un certain nombre d'instructions SQL pour créer les tables, insérer les données, etc.HSQLDB - cacher la structure de la base de données/contenu de l'utilisateur

Y a-t-il un moyen simple de cacher cela aux utilisateurs? Je n'ai pas nécessairement besoin d'être complètement crypté, etc - Je voudrais juste empêcher l'utilisateur occasionnel d'ouvrir simplement le fichier et de voir la structure de la base de données.

Répondre

1

La solution que je suis allé avec pour est maintenant appeler:

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

pour stocker le fichier .script sous une forme illisible humaine et:

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

pour empêcher les utilisateurs plus avertis d'ouvrir la DB en utilisant leur propre client HSQLDB.

1

Vous pouvez intégrer vos fichiers de base de données dans un fichier jar et connectez-les en utilisant la notation:

jdbc:hsqldb:res:<path in jar> 

Vérifiez la section Advanced Topics du guide HSQLDB pour plus d'informations à ce sujet. Cependant, je ne l'ai jamais essayé alors je ne suis pas 100% sûr qu'il fonctionnera ...

0

Malheureusement, je n'ai pas pu exécuter la commande ci-dessous
db.update ("SET scriptformat COMPRESSED");

Et devenais cette erreur

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

Cette erreur résolu avec cette commande
db.update ("SET FICHIERS SCRIPT FORMAT COMPRIMÉE");

J'utilise HSQLDB 2.3.3

+0

La commande dans la version 2.x est 'SET FORMAT DE FICHIERS SCRIPT COMPRESSED' – fredt

Questions connexes