Я сделал это, когда клиент вертикального рынка хотел использовать мою программу ClipMate для хранения и распространения медицинских данных и не хотел, чтобы данные уходили «в дикую природу».
Я использовал возможности шифрования базы данных (DBISAM от Elevatesoft, у которой есть механизм, который компилируется непосредственно в программы Delphi) и возможность «аппаратной блокировки» моей оболочки защиты Armadillo.
Поэтому, когда кто-то покупает программу у клиента вертикального рынка, он получает приложение (скачать или компакт-диск) и устанавливает его. После установки им предоставляется диалоговое окно регистрации, которое показывает их «аппаратный отпечаток» (как сообщает Armadillo). Это происходит из их адреса Ethernet, последовательного процессора, жесткого диска и т. Д., И я могу ошибаться в любом из них, но это общая идея. Они вызывают его, и генерируется ключ, который уникален для этой комбинации конечного пользователя / компьютера. Регистрационный ключ «разблокирует» базу данных, которая зашифрована, и ключ шифрования является частью регистрационного кода.
Конечный пользователь не может использовать данные без ключа, и они не могут отдавать или передавать данные без получения другого кода разблокировки. Это довольно плотно. Было бы слишком раздражающим для недорогого приложения, но они платят за это много, так что оно того стоит.
В любом случае, резюмируем: база данных зашифрована, и код шифрования доступен (программе, которая читает базу данных) только тогда, когда программа должным образом зарегистрирована для конкретного пользователя / компьютера.
Вы МОЖЕТЕ сделать это с помощью Access, MySQL и т. Д. Просто зашифруйте данные либо на уровне базы данных (я полагаю, они поддерживают это, нет?), Либо на уровне поля, если вы хотите получить полный контроль и согласны используя пользовательское интерфейсное приложение, чтобы прочитать вещь.