HSQLDB - скрытие структуры / содержимого базы данных от пользователей - PullRequest
1 голос
/ 24 августа 2009

Я рассматриваю использование HSQLDB версии 1.8.x в настольном приложении для хранения локальных данных. Из того, что я вижу, база данных хранится на диске в виде ряда операторов SQL для создания таблиц, вставки данных и т. Д.

Есть ли простой способ скрыть это от пользователей? Мне не обязательно, чтобы он был полностью зашифрован и т. Д. - я бы просто хотел, чтобы обычный пользователь просто не открыл файл и не увидел структуру базы данных.

Ответы [ 3 ]

1 голос
/ 24 августа 2009

Решением, с которым я сейчас столкнулся, является вызов:

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

для сохранения файла .script в нечитаемой форме и:

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

, чтобы не позволить более опытным пользователям открывать БД с помощью собственного клиента HSQLDB.

1 голос
/ 24 августа 2009

Вы можете встроить файлы базы данных в файл jar и подключиться к ним, используя обозначение:

jdbc:hsqldb:res:<path in jar>

Ознакомьтесь с разделом Расширенные темы руководства HSQLDB для получения дополнительной информации по этому вопросу. Однако я никогда не пробовал, поэтому не уверен на 100%, что это сработает ...

0 голосов
/ 17 ноября 2015

К сожалению, я не смог выполнить команду ниже
db.update («SET scriptformat COMPRESSED»);

И получал эту ошибку

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

Эта ошибка решена с помощью этой команды
db.update («ФОРМАТ СКРИПТА НАСТРОЕННЫХ ФАЙЛОВ СЖАТЫЙ»);

Я использую HSQLDB 2.3.3

...