HSQLDB - estrutura de banco de dados esconderijo / conteúdos de usuários
Pergunta
Estou pensando em usar HSQLDB versão 1.8.x em um aplicativo de desktop para armazenar dados locais. Pelo que posso ver, o banco de dados é armazenado no disco como uma série de instruções SQL para criar as tabelas, inserir os dados, etc.
Existe uma simples maneira que eu posso esconder isso de usuários? Estou não precisa necessariamente que ele seja completamente criptografado, etc -. Eu só gostaria de evitar que o usuário casual de simplesmente abrir o arquivo e ver a estrutura do banco de dados
Solução 2
A solução que eu já passei por agora é chamar:
db.update("SET SCRIPTFORMAT COMPRESSED;");
para armazenar o arquivo .script em uma forma humanamente ilegível e:
db.update("SET PASSWORD password;");
para impedir que usuários mais experientes de abrir o DB usando seu próprio cliente HSQLDB.
Outras dicas
Você pode inserir seus arquivos de banco de dados dentro de um arquivo jar e conectar a eles usando a notação:
jdbc:hsqldb:res:<path in jar>
Confira o seção Tópicos Avançados do guia HSQLDB para mais informações sobre este . No entanto, eu nunca tentei, então não estou 100% de certeza que ele vai trabalhar ...
Infelizmente eu não era capaz de executar o comando abaixo
db.update ( "SET scriptformat comprimido");
E foi recebendo este erro
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: SCRIPTFORMAT
Este erro resolvido com este comando
db.update ( "SET arquivos de script formato comprimido");
Eu estou usando HSQLDB 2.3.3