Защита базы данных
Нужно защитить базу, таким образом, чтобы ее не смогли скопировать.
Можно было бы завязать это все на правах пользователей. Но это не выход. Винт всегда можно подключить к другому компу и все райтсы убрать.
Есть идея не знаю как реализовать.
Может кто поможет...
Идея заключается в следующем:
взять на низком уровне из фат таблицы какой-нибудь унакальный идентификатор файла в котором содержится база-данных аксесса. Нопример адрес к файлу который постоянно меняется при копировании или перезаписи.
Записать этот идентификатор в ту жу базу, запароленную, и при каждом запуске приложения производить проверку актуального идентификатора с тем что записан в базе.
Таким образом мы не запретим копирование на для большей части аудитории пользователей мы пресечем это дело...
так что... если кто может помочь... пишите...
может если слишком запутанно объяснил... извените... в голове у меня идея крутится... а на "бумаге" мог и не очень ясно растольковать...
Идея заключается в следующем:
взять на низком уровне из фат таблицы какой-нибудь унакальный идентификатор файла в котором содержится база-данных аксесса. Нопример адрес к файлу который постоянно меняется при копировании или перезаписи.
А также меняется при дефрагментации диска или же простом изменении данных при работе с БД. Кроме того, в этом случае, БД станет зависимой от операционной и файловой систем: метод для FAT32 не подойдёт для NTFS и наоборот.
Так что, проще всего, закрыть базу данных внутренним паролем. ACCESS позволяет делать свои внутренние группы пользователей, с отдельными правами доступа на чтение и изменение данных, причём логины и пароли будут независимы от системных.
Запаролить создаваемого "по умолчанию" Admin'а - и пусть винт тырят.
И в какой "нормальной" базе данных есть защита от неправомерного чтения данных :confused: , реализованная иначе, чем в Access ;)
Навешать паролей - и всё - человеку, который сопрёт винт, нужно будет знать этот пароль.
А ещё, как вариант, ничего не делать, а просто зашифровать файл БД средствами WindowsXP - тогда на любой другой машине этот файл будет представлять собой набор байт
А вариант с "низкоуровневой" защитой просто невозможен, так как "защиту" писать придётся непосредственно внутри БД на Visual Basic :D
И вообще, тема к Builder'у отношения не имеет.
В Oracle 10g. Там есть возможность шифрования данных, содержащихся в таблицах, с применением eKey для доступа.
[QUOTE=el scorpio]И вообще, тема к Builder'у отношения не имеет.[/QUOTE]
Согласен.
Дело в том что защиту я думал делать в билдере... по этому здесь я и задал этот вопрос...
Так что, проще всего, закрыть базу данных внутренним паролем. ACCESS позволяет делать свои внутренние группы пользователей, с отдельными правами доступа на чтение и изменение данных, причём логины и пароли будут независимы от системных.
Запаролить создаваемого "по умолчанию" Admin'а - и пусть винт тырят.[/QUOTE]
Может меня не правильно поняли... на сколько я знаю в фат таблицах есть адреса, этакие поинтеры позиционирования головок... сколько файл на одном месте... поинтер не должен меняться... как только файл будет скопирован или перезаписан... адрес сектора в котором будет начало файла, поменяется.
Я думал что можно привязаться к этому адресу сектора, с которого начинается файл, и в билдере все время его проверять...
Подумал что это возможно... ведь есть програмы которые востанавливают информацию с винтов... наверняка там работа идет на низком уровне... значит и в билдере такое можно сделать... тока не знаю как....
А на счет типов файловых таблиц.... согласен... для каждой файловой системы нужен свой метод... можно предусмотреть несколько файловых систем... на других програма не будет работать... вот и все...
в юношестве баловался "взломом"... если это так можно назвать...
я работал в инет-салоне... у нас была програмка для учета денег и времени.... база находилась на винте... в нескольких файлах...
мы снимали копию базы в начале работы... и в течении дня забивали все денежные приходы... это все делалось для того чтобы в случае если хозяин салона придет, у него не создавалось подозрений о том что мы что-то мутим... в конце дня мы перезаписывали текущую базу копией той что мы делали в начале дня... в итоге получалось что в течении дня никого небыло в салоне... и выручку снимали мы, а не хозяин...
вот так мы его наказывали за его скупердяйство...
но теперь повзрослев... став програмером.... зная об таком недостатке баз данных... хочу защитить свою программу...
надеюсь изъяснился понятно... что я хочу узнать в этом топике...
так что светлые головы... дерзайте... поможете мне... за что вам огромная благодарность... и возможно многим другим...
ЗЫ: вероятно на уровне билдера это зделать нельзя... возможно придется зделать вставки кода из асемблера... если это так то тогда топик клонируется в другую рубрику...
Угу, суть развода понятна :D.
Пользуйтесь специализированными бухгалтерскими программами.
Хотя, конечно же, "торговать временем", это сложнее с фискальной точки зрения, чем продажа компьютерного (или любого другого) железа.
Как вариант - использовать СЕТЕВУЮ БД, расположенную так, чтобы "ручками" её файл перезаписать было невозможно (например, открыть самому :D )
Хотя... известны мне они были и до этого... скорее не узнал... а подтвердил в очередной раз...
На счет того что я хотел узнать скорее всего... я почти уверен что это реализовать можно... но нужен програмер низкого уровня... скорее всего... залезть и манипулировать файловой системой не каждый сможет...
Всем спасибо...