Есть ли в любом случае, чтобы сделать это так
не извлекается? Затянуть
шифрование так сказать?
Это зависит; Вы можете либо изменить свою базу данных и искать более безопасную (например, MS SQL Server Compact Edition), либо, если вы хотите остаться в MS Access, и для вас важна безопасность данных, используйте шифрование важных полей с помощью хорошего шифрования. алгоритм (например, AES).
Если вы собираетесь шифровать свои поля, вы можете сделать это прозрачно в Delphi; каждое поле БД в Delphi является производным от класса TField и имеет два события: OnGetText и OnSetText. OnGetText срабатывает каждый раз, когда вы пытаетесь прочитать данные поля, а OnSetText срабатывает каждый раз, когда вы пытаетесь записать в поле. Вы можете зашифровать данные поля при каждом запуске OnSetText, таким образом, зашифрованные данные будут сохранены в базе данных. С другой стороны, вы можете расшифровывать данные поля всякий раз, когда запускается OnGetText, таким образом, пользователь всегда будет видеть и работать с расшифрованными данными. Весь процесс будет прозрачен для пользователей.
Конечно, вы должны принять к сведению, что шифрование / дешифрование полей каждый раз, когда они читаются или записываются, имеет недостаток производительности в зависимости от количества полей, которые должны быть зашифрованы, их размера, частоты чтения или записи и алгоритма шифрования, который используемый. Лучше просто зашифровать важные поля.
Другим вариантом может быть шифрование всего файла базы данных MS Access и его дешифрование всякий раз, когда к нему подключается ваше приложение, но в этом случае файл защищен, пока ваше приложение не запущено; когда ваше приложение запущено и файл расшифрован; файл доступен другим.