Насколько я знаю, вы не можете избежать открытия базы данных .GDB или .FDB экземпляром Interbase или Firebird. Это файл (или группа файлов) с известной структурой для такого экземпляра, и, если (злонамеренный) пользователь знает пароль SYSDBA, к нему можно получить доступ.
Сказал это, некоторые предложения:
- Если вам это не нужно, убедитесь, что встроенная версия Firebird отсутствует в вашей установке, чтобы не дать пользователю инструмент, с помощью которого можно напрямую обращаться к базе данных.
- Насколько возможно, ограничьте любой доступ к каталогу, где будет находиться база данных. Межсетевые экраны, права пользователей каталога и т. Д.
- Используйте gsec.exe, как вы сказали, для добавления / изменения прав доступа пользователей. Хотя это не помешает SYSDBA получить доступ к базе данных, по крайней мере, это помешает обычному пользователю сделать это.
- Зашифруйте файловую систему, в которой будет находиться база данных. Вы можете найти более подробную информацию об этом на Как защитить данные в базе данных Firebird .
- Если доступ к базе данных осуществляется через небезопасные сети, такие как Интернет, вы можете использовать SSL. Проверьте Как защитить соединение по незащищенным сетям .
- Проверьте FAQ по Firebird Security для получения дополнительной информации.
Существует еще одно решение, которое может помочь вам частично: шифрование перед сохранением данных и дешифрование при чтении данных, но это может вызвать некоторые проблемы при поиске по данным, поскольку вы не сможете использовать некоторые индексы (фактически только PK и FK индексы будут работать без нареканий).
Я знаю, что это не тот ответ, который вы ожидали, поэтому извините за это. Может быть, кто-то еще придет с альтернативным и лучшим решением. : -)
НТН