Как защитить БД Access в Delphi?
В вопросе явно мало вводных данных.
Аксес для этой задачи однозначно не подходит Хотя если построите трёхзвенное приложение и будете шифровать все критические поля то можно помучаться.
Я бы сделал так:
Разместил бы базу на другом сервере. FireBird.
В ней завёл бы обычного юзера. Пользователю разрешл бы читать только определённые объекты tables, views и выполнять определённые процедуры. Другими словами сделал бы так чтобы пользователь не мог читать писать то что ему нельзя. Там же на сервере запустил бы другое приложение задача которого подсоединиться к базе как sysdba и прочесть табличку с логинами паролями пользователей и сидеть ждать соединения пользователя. Вторая задача серверного приложения принимать соединения по ssl и дешифровать их. Тут же должна быть защита от подбора пароля.
На клиенте бы использовал ssl.
Но у этого решения есть большая проблема чтобы обезопаситься от dll injection нужно избавиться от внешних ssleay.dll и fbclient.dll нужно взять их исходники и внедрить в приложение без использования техники dll. А это явно не Delphi.Но главный вопрос что Вы хотите сделать?
Если пользователь может запустить приложение и пользоваться им то что ему мешает сделать простой скрипт который распарсит данные из базы? Любое Windows GUI приложение которое использует Windows API может быть обмануто внешней программой.
Если задача ограничить пользователя только его песочницей -- то тут нужно работать над устройством базы данных её структурой и бизнеслогикой. Firebird позволяет используя только возможности сервера сделать различные ограничения в том числе отображать записи из таблицы избирательно через view (блокируя при этом доступ к таблице).
Но если база физически доступна пользователю то шифруйте её. Возможно есть какие-то готовые решения.
1) Какая-то защита логины-пароли и в самом аксессе есть. Да почти в любой БД (или любой).
Если достаточно надежна - юзаем ее, и извне (из офисса) тоже будет доступ только по логину и паролю.
2) 100% надежный вариант: архивировать под паролем.
Это от брутфорса или взлома самой БД.
Но реверс-инженер может само приложение взломать, узнав пароль или изменив его. Если ему заплатят.