Добрый день! Возник вопрос о защите данных СУБД Firebird.
Понимаю, такой вопрос рассматривался в интернете не раз, но ничего путного нет, только ответы в стиле сменить СУБД и т.п.
Есть многопользовательская медицинская база данных, в ней несколько таблиц. Нужно защитить сам файл базы данных и/или же шифровать отдельные столбцы.
Плагин шифрования
У Firebird есть пример плагина шифрования - https://github.com/FirebirdSQL/firebird/blob/master/examples/dbcrypt/cryptDb.pas
Но, увы, я этот пример не понял, разве что шифрование там сверхпримитивное для примера - XOR, а платные плагины стоят очень дорого.
Какие будут идеи насчёт плагина?
Шифрование на клиенте
В Гугле находил идею, что можно шифровать данные на клиенте, но тут возник вопрос:
Например, имеются 2 пользователя. Один может получать доступ ко всем таблицам, другой - только к определенным. Пароли разные, если, к примеру, брать MD5 пароля пользователя за ключ шифрования, а раз ключи получатся разные - то другой клиент не расшифрует столбцы.
И еще нюанс с поиском - шифрованные данные.
Шифрованный контейнер
Например, VeraCrypt, но клиенты не захотят каждый раз вводить пароль для открытия виртуального диска и придется ставить автоматический вход. И тут есть еще вопрос - когда контейнер открыт, данные можно легко скопировать, ведь они уже и не шифрованы.
В идеале, конечно, чтобы сам сервер выполнял шифрование через плагин, но можно рассмотреть и другие варианты.
Буду благодарен за любые предложения. Спасибо.