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

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

31.05.2013, 22:17. Просмотров 1182. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 22:17
Ответы с готовыми решениями:

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

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

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

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

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

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

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

Цитата Сообщение от ImNIK Посмотреть сообщение
А что пользователю мешает на своей машине удалить всю непонятную СУБД, которую ты создал и которая наверняка будет висеть в процессах?
Это уж слишком). По вашим словам, пользователь - маньяк, который задался целью покрушить программу, винду и все что можно вообще =).
0
ImNIK
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
alechka
75 / 50 / 14
Регистрация: 28.03.2013
Сообщений: 175
02.06.2013, 23:16 8
Цитата Сообщение от umc55555 Посмотреть сообщение
Не очень понял.. База при этом все равно создается локальная (не на сервере), но доступ к ней осуществляется по сети?
там несколько механизмов общения с sql server, но в целом его можно настроить так, чтобы пользователи без полномочий администратора не имели доступа к файлу базы на чтение/редактирование/удаление, но могли к ней обращаться через запросы в sql server.
1
02.06.2013, 23:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2013, 23:16

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

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

Как открыть базу данных 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 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru