HSQLDB - nascondersi struttura del database / contenuti degli utenti
Domanda
Sto pensando di utilizzare HSQLDB versione 1.8.x in un'applicazione desktop per l'archiviazione di dati locali. Da quello che posso vedere, il database è memorizzato su disco come una serie di istruzioni SQL per creare le tabelle, inserire i dati, ecc.
C'è un modo semplice che posso nascondere questo da parte degli utenti? Sto non hanno necessariamente bisogno di essere completamente cifrato, ecc -. Vorrei solo per evitare che l'utente occasionale dal semplicemente aprendo il file e vedere la struttura del database
Soluzione 2
La soluzione sono andato con per ora è quello di chiamare:
db.update("SET SCRIPTFORMAT COMPRESSED;");
per memorizzare il file .script in forma umana-illeggibile e:
db.update("SET PASSWORD password;");
per evitare che altri utenti esperti di aprire il DB utilizzando il proprio client HSQLDB.
Altri suggerimenti
Si potrebbe incorporare i file di database all'interno di un file jar e connettersi a loro utilizzando la notazione:
jdbc:hsqldb:res:<path in jar>
Controlla la sezione Argomenti avanzati della guida HSQLDB per ulteriori informazioni su questo . Tuttavia, non ho mai provato in modo non sono sicuro al 100% che funzionerà ...
Purtroppo non è stato in grado di eseguire il comando di seguito
db.update ( "SET scriptformat COMPRESSA");
Ed è stato questo errore
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: SCRIPTFORMAT
Questo errore risolto con questo comando
db.update ( "SET file script formato compresso");
Sto usando HSQLDB 2.3.3