Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
14 / 14 / 7
Регистрация: 11.05.2013
Сообщений: 226
1
.NET 4.x

C#, ADO.NET. Как защитить файл базы данных Access от удаления пользователем через проводник?

31.05.2013, 22:17. Просмотров 1452. Ответов 7
Метки нет (Все метки)

VS 2010, framework 4.

Добавляю в проект ссылку "Microsoft ADO Ext. 2.8 for DDL and Security".
При создании файла базы данных Access защищаю его паролем, чтобы пользователь без программы не смог открыть и редактировать базу. Но если закрыть программу, то ничего не препятствует удалению файла *.mdb из проводника.
Как программно защитить этот файл от удаления?
Создание БД с паролем:
C#
1
2
3
4
5
6
using ADOX;
 
Catalog cat = new Catalog();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" +
              @"Data Source=%путь_к_БД%\file.mdb;Jet OLEDB:Database Password='asdf';" +
              "Jet OLEDB:Engine Type=5");
Как насчет перемещения? Если пользователь переместит файл - тоже плохо, но если нужно переместить программу и файл, то все ок.


P. S. Что означает "Jet OLEDB:Engine Type=5" ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2013, 22:17
Ответы с готовыми решениями:

Как добавлять записи в таблицу базы данных Access программно через ADO?
Как добавлять записи в таблицу базы данных Access программно через ADO?:yahoo:

Программное создание базы данных через ADO.NET
Подскажите! Я везде нахожу примеры с SQL Server'ом. А если мне нужно создать через Access, то как...

Работа с базой данных Access через ADO.NET
Учусь работать с базой данных Access через ADO.NET. Попробовал поработать с помощью мастеров - не...

Что лучше: работа с Access через ADO.NET или силами самого Access?
Считаю, что лучше работать с регулярно поступающим в Access объемом данных, разработав приложение...

7
75 / 50 / 14
Регистрация: 28.03.2013
Сообщений: 175
31.05.2013, 23:13 2
Цитата Сообщение от umc55555 Посмотреть сообщение
Как программно защитить этот файл от удаления?
никак. Разве что можете выложить его на удаленный сервер, настроив нужные привелегии. Хотя если пользователь имеет доступ на запись, он в любом случае сможет его поломать.
1
14 / 14 / 7
Регистрация: 11.05.2013
Сообщений: 226
01.06.2013, 16:58  [ТС] 3
А возможно создать базу с помощью СУБД Access, но без внешнего файла? [На удаленном сервере - не подходит.]
Если нет, то возможно ли это вообще, с помощью хоть какой-нибудь СУБД? Какой?
0
75 / 50 / 14
Регистрация: 28.03.2013
Сообщений: 175
01.06.2013, 19:25 4
MS SQL Server, My Sql итд, где доступ к базе идёт по сети, а не через файловую систему
1
13 / 13 / 1
Регистрация: 21.05.2013
Сообщений: 61
02.06.2013, 10:35 5
Объясни цель этой защиты?
Т.к. пользователь с таким же успехом может снести винду или файлы из твоей программы, отчего бы их тоже не защищать?
Создай файл, сделай его скрытым. Далее что мешает файл закинуть в системную папку, и обозвать как-то winproc. Если и его пользователь там будет сносить, то нет гарантии, что он не удалит все остальные системные файлы)))

Добавлено через 1 минуту
Цитата Сообщение от umc55555 Посмотреть сообщение
А возможно создать базу с помощью СУБД Access, но без внешнего файла? [На удаленном сервере - не подходит.]
Если нет, то возможно ли это вообще, с помощью хоть какой-нибудь СУБД? Какой?
А что пользователю мешает на своей машине удалить всю непонятную СУБД, которую ты создал и которая наверняка будет висеть в процессах?

Добавлено через 5 минут
Цитата Сообщение от umc55555 Посмотреть сообщение
P. S. Что означает "Jet OLEDB:Engine Type=5" ?
5 - он и так по умолчанию, писать не обязательно.
http://support.microsoft.com/kb/230501/ru
1
14 / 14 / 7
Регистрация: 11.05.2013
Сообщений: 226
02.06.2013, 18:20  [ТС] 6
Цитата Сообщение от alechka Посмотреть сообщение
MS SQL Server, My Sql итд, где доступ к базе идёт по сети, а не через файловую систему
Не очень понял.. База при этом все равно создается локальная (не на сервере), но доступ к ней осуществляется по сети?

Цитата Сообщение от ImNIK Посмотреть сообщение
Т.к. пользователь с таким же успехом может снести винду или файлы из твоей программы, отчего бы их тоже не защищать?
Создай файл, сделай его скрытым. Далее что мешает файл закинуть в системную папку, и обозвать как-то winproc. Если и его пользователь там будет сносить, то нет гарантии, что он не удалит все остальные системные файлы
Аналогия с файлами из программы больше подходит по-моему).
Как сделать файл скрытым, не подскажете?
Если кинуть файл в системную папку, то при переносе программы он потеряется.

Цитата Сообщение от ImNIK Посмотреть сообщение
А что пользователю мешает на своей машине удалить всю непонятную СУБД, которую ты создал и которая наверняка будет висеть в процессах?
Это уж слишком). По вашим словам, пользователь - маньяк, который задался целью покрушить программу, винду и все что можно вообще =).
0
13 / 13 / 1
Регистрация: 21.05.2013
Сообщений: 61
02.06.2013, 18:28 7
Цитата Сообщение от umc55555 Посмотреть сообщение
Это уж слишком). По вашим словам, пользователь - маньяк, который задался целью покрушить программу, винду и все что можно вообще =).
Ну если ему файл БД не дает покоя, почему бы и нет))

создаёшь файл и устанавливаешь ему атрибут:
скрытый
System.IO.File.SetAttributes(@"файл", System.IO.FileAttributes.Hidden);
или системный
System.IO.File.SetAttributes(@"файл", System.IO.FileAttributes.System);
Только я не знаю, есть ли специфика доступа к таким файлам....

Добавлено через 2 минуты
Так какая самоцель этого действия? Переносимое приложение на флешке?
Просто писать переносимое приложение на .net по мне немного неудачная мысль... хотя как смотреть.
1
75 / 50 / 14
Регистрация: 28.03.2013
Сообщений: 175
02.06.2013, 23:16 8
Цитата Сообщение от umc55555 Посмотреть сообщение
Не очень понял.. База при этом все равно создается локальная (не на сервере), но доступ к ней осуществляется по сети?
там несколько механизмов общения с sql server, но в целом его можно настроить так, чтобы пользователи без полномочий администратора не имели доступа к файлу базы на чтение/редактирование/удаление, но могли к ней обращаться через запросы в sql server.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2013, 23:16

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

Как через ADO можно создать новый файл Access ?
Как через ADO можно создать новый файл Access ? Спасибо !

ADO.NET и базы данных
у меня маленькая проблемка есть база данных и c# visual studio 2005 база данных содержит поле...

Подключение Базы данных Access через ини файл
Здравствуйте. Я не могу понять как подключить базу данных через ини файл, и чтоб набор данных был...

Как открыть базу данных MS Access с файлом .mdw через ADO?
Запуск из командной строки C:……MSAccess.exe “c:db1.mdb” /user xxx /pwd yyy /wrk grp...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.