Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Защита базы данных

3.0K
19 ноября 2006 года
GoldMan
104 / / 15.08.2005
Есть проект, работающий с базой данных на Ms Access. Работает через ADO.
Нужно защитить базу, таким образом, чтобы ее не смогли скопировать.
Можно было бы завязать это все на правах пользователей. Но это не выход. Винт всегда можно подключить к другому компу и все райтсы убрать.
Есть идея не знаю как реализовать.

Может кто поможет...

Идея заключается в следующем:
взять на низком уровне из фат таблицы какой-нибудь унакальный идентификатор файла в котором содержится база-данных аксесса. Нопример адрес к файлу который постоянно меняется при копировании или перезаписи.
Записать этот идентификатор в ту жу базу, запароленную, и при каждом запуске приложения производить проверку актуального идентификатора с тем что записан в базе.
Таким образом мы не запретим копирование на для большей части аудитории пользователей мы пресечем это дело...

так что... если кто может помочь... пишите...

может если слишком запутанно объяснил... извените... в голове у меня идея крутится... а на "бумаге" мог и не очень ясно растольковать...
309
19 ноября 2006 года
el scorpio
1.1K / / 19.09.2006
Цитата:

Идея заключается в следующем:
взять на низком уровне из фат таблицы какой-нибудь унакальный идентификатор файла в котором содержится база-данных аксесса. Нопример адрес к файлу который постоянно меняется при копировании или перезаписи.


А также меняется при дефрагментации диска или же простом изменении данных при работе с БД. Кроме того, в этом случае, БД станет зависимой от операционной и файловой систем: метод для FAT32 не подойдёт для NTFS и наоборот.

Так что, проще всего, закрыть базу данных внутренним паролем. ACCESS позволяет делать свои внутренние группы пользователей, с отдельными правами доступа на чтение и изменение данных, причём логины и пароли будут независимы от системных.
Запаролить создаваемого "по умолчанию" Admin'а - и пусть винт тырят.

294
19 ноября 2006 года
Plisteron
982 / / 29.08.2003
Если надо решить задачу именно недоступности данных на стыренном винте, то как нельзя лучше подойдёт TrueCrypt. Помешаешь базюльку в криптоконтейнер, просишь ввести пароль, монтируешь криптоконтейнер как лигический диск и работаешь. Если прога работает в сети, придётся раскошеливаться на SecretDisk...
240
19 ноября 2006 года
aks
2.5K / / 14.07.2006
Прощще всего исспользовать нормальную СУБД вместо Acсess. Тогда таких проблем не будет.
309
19 ноября 2006 года
el scorpio
1.1K / / 19.09.2006
[QUOTE=aks]Прощще всего исспользовать нормальную СУБД вместо Acсess. Тогда таких проблем не будет.[/QUOTE]
И в какой "нормальной" базе данных есть защита от неправомерного чтения данных :confused: , реализованная иначе, чем в Access ;)
Навешать паролей - и всё - человеку, который сопрёт винт, нужно будет знать этот пароль.
А ещё, как вариант, ничего не делать, а просто зашифровать файл БД средствами WindowsXP - тогда на любой другой машине этот файл будет представлять собой набор байт

А вариант с "низкоуровневой" защитой просто невозможен, так как "защиту" писать придётся непосредственно внутри БД на Visual Basic :D

И вообще, тема к Builder'у отношения не имеет.
294
19 ноября 2006 года
Plisteron
982 / / 29.08.2003
[QUOTE=el scorpio]И в какой "нормальной" базе данных есть защита от неправомерного чтения данных :confused: , реализованная иначе, чем в Access ;)[/QUOTE]
В Oracle 10g. Там есть возможность шифрования данных, содержащихся в таблицах, с применением eKey для доступа.

[QUOTE=el scorpio]И вообще, тема к Builder'у отношения не имеет.[/QUOTE]
Согласен.
3.0K
19 ноября 2006 года
GoldMan
104 / / 15.08.2005
[QUOTE=el scorpio]И вообще, тема к Builder'у отношения не имеет.[/QUOTE]

Дело в том что защиту я думал делать в билдере... по этому здесь я и задал этот вопрос...
3.0K
19 ноября 2006 года
GoldMan
104 / / 15.08.2005
[QUOTE=el scorpio]А также меняется при дефрагментации диска или же простом изменении данных при работе с БД. Кроме того, в этом случае, БД станет зависимой от операционной и файловой систем: метод для FAT32 не подойдёт для NTFS и наоборот.

Так что, проще всего, закрыть базу данных внутренним паролем. ACCESS позволяет делать свои внутренние группы пользователей, с отдельными правами доступа на чтение и изменение данных, причём логины и пароли будут независимы от системных.
Запаролить создаваемого "по умолчанию" Admin'а - и пусть винт тырят.[/QUOTE]

Может меня не правильно поняли... на сколько я знаю в фат таблицах есть адреса, этакие поинтеры позиционирования головок... сколько файл на одном месте... поинтер не должен меняться... как только файл будет скопирован или перезаписан... адрес сектора в котором будет начало файла, поменяется.
Я думал что можно привязаться к этому адресу сектора, с которого начинается файл, и в билдере все время его проверять...

Подумал что это возможно... ведь есть програмы которые востанавливают информацию с винтов... наверняка там работа идет на низком уровне... значит и в билдере такое можно сделать... тока не знаю как....

А на счет типов файловых таблиц.... согласен... для каждой файловой системы нужен свой метод... можно предусмотреть несколько файловых систем... на других програма не будет работать... вот и все...
3.0K
19 ноября 2006 года
GoldMan
104 / / 15.08.2005
объясню для чего нужда защита от копирования...
в юношестве баловался "взломом"... если это так можно назвать...

я работал в инет-салоне... у нас была програмка для учета денег и времени.... база находилась на винте... в нескольких файлах...

мы снимали копию базы в начале работы... и в течении дня забивали все денежные приходы... это все делалось для того чтобы в случае если хозяин салона придет, у него не создавалось подозрений о том что мы что-то мутим... в конце дня мы перезаписывали текущую базу копией той что мы делали в начале дня... в итоге получалось что в течении дня никого небыло в салоне... и выручку снимали мы, а не хозяин...
вот так мы его наказывали за его скупердяйство...

но теперь повзрослев... став програмером.... зная об таком недостатке баз данных... хочу защитить свою программу...

надеюсь изъяснился понятно... что я хочу узнать в этом топике...

так что светлые головы... дерзайте... поможете мне... за что вам огромная благодарность... и возможно многим другим...

ЗЫ: вероятно на уровне билдера это зделать нельзя... возможно придется зделать вставки кода из асемблера... если это так то тогда топик клонируется в другую рубрику...
240
20 ноября 2006 года
aks
2.5K / / 14.07.2006
Ну если уж так требуется хранить базу в локальном файле Access, то пожалуй самый нормальный вариант (и рабочий без привязки к файловой системе и диску) - шифровать его как либо симетричным шифром с большой длинной ключа. Тогда от копирования защита будет хотя бы потому как данные будут зашифрованны. Останется только продумать обращение к базе. Можно расшифровать и сэмулировать файл в память или же если нет черезмерной паранои - расшифровывать на диск по какому то запутанному пути со случайным именем и после работы снова удалять. От подавляющей части юзеров это защитит. А кому надо тот может и чтение/запись файла перехватить и дамп памяти процесса сделать.
309
20 ноября 2006 года
el scorpio
1.1K / / 19.09.2006
Цитата:
мы снимали копию базы в начале работы... и в течении дня забивали все денежные приходы... это все делалось для того чтобы в случае если хозяин салона придет, у него не создавалось подозрений о том что мы что-то мутим... в конце дня мы перезаписывали текущую базу копией той что мы делали в начале дня... в итоге получалось что в течении дня никого небыло в салоне... и выручку снимали мы, а не хозяин...


Угу, суть развода понятна :D.
Пользуйтесь специализированными бухгалтерскими программами.
Хотя, конечно же, "торговать временем", это сложнее с фискальной точки зрения, чем продажа компьютерного (или любого другого) железа.
Как вариант - использовать СЕТЕВУЮ БД, расположенную так, чтобы "ручками" её файл перезаписать было невозможно (например, открыть самому :D )

3.0K
21 ноября 2006 года
GoldMan
104 / / 15.08.2005
По сути дела ничего не добился но и на том спасибо... хоть узнал некоторые мнения о базах данных...
Хотя... известны мне они были и до этого... скорее не узнал... а подтвердил в очередной раз...

На счет того что я хотел узнать скорее всего... я почти уверен что это реализовать можно... но нужен програмер низкого уровня... скорее всего... залезть и манипулировать файловой системой не каждый сможет...

Всем спасибо...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог