Страница 1 из 1

Защитить базу Access от удаления (Сложное администрирование)

Добавлено: 14 ноя 2011, 16:12
kuznetsovSergey
Добрый день,

Написал просьтенькую базу Access, и хотел бы её защитить от удаления, подскажите пожалуйста методы защиты такой базы. Дело вот в чём.

1) Погуглил, нашел кучу информации как зищащать информацию внутри базы через мастера защиты. Но не нашел не одной статьи, где подробно бы рассказывалось, как обезапасить саму базу от удаления. А именно .. База с многопользовательским доступ хранится на сетевом диске, как её оградить от пользователя, который просто захочет её удалить?

2) Когда создается администрирование базой, то можно назначить полномочия только чтения, или чтение и обновление, чтение и удаление. Причем на целую группы базы: на формы, или запросы, или таблицы ... Как быть, если я хочу дать доступ одному пользователю, только на добавление данных в одну определенную таблицу, а другой пользователь, сможет добавлять информацию только в другую, и т.д. ?

Re: Защитить базу Access от удаления (Сложное администрирование)

Добавлено: 16 ноя 2011, 09:49
kuznetsovSergey
Относительно первого пункта, всё стало ясно, решили через права администратора, запретить удаление файла, все остальные юзеры имеют права только пользователя. По этому вопросу разобрался.

Но по второму вопросу, всё же жду поддержки, хотя бы с чего начать? Как организовать права доступа к определенным таблицам? И назначать право доступа каждому отдельному юзеру, только на чтение или только на запись, определенных таблиц в базе ...

Re: Защитить базу Access от удаления (Сложное администрирование)

Добавлено: 16 ноя 2011, 16:30
Naeel Maqsudov
Первый вопрос вообще не относится ни к Access ни к MS Office. Если сетевой ресурс позволяет детально разграничивать права доступа к файлам, и, в частности, позволяет запретить удаление файла определённым пользователям/группам, то надо этим и воспольозваться. Всё зависит от того как (чем) сделан у Вас этот сетевой диск. Если у Вас на предприятии есть подразделение IT, которое всем этим занимается, то попросите их обеспечить такой режим доступа к этому файлу, чтобы работало всё, кроме удаления. Вполне возможно :) , что это может оказаться невозможно в Вашем конкретном случае.

Что касается 2), то надо знать, какой версии Access. Дело в том, что начиная с Office 2007 в Access упразднены многие security features. Если файл создан в более ранней версии, то детальное разграничение доступа еще продолжает рабоать, но уже даже не подлежит изменению. :( Вообще, раньше можно было конкретным пользователям и группам разрешать/запрещать раздельно чтение данных, запись данных, удаление данных, чтение макета, изменение макета, а также администрирование (т.е. изменение прав пользователей для этого объекта). В 2007 я ничего этого уже не могу.
Кроме того, всякие мастера защиты мало полезны. В старых версиях надо было идти в БазаДанных/Безопасность/Разрешения и ручками назначать всё как следует, но прежде того! (обязательно ДО создания базы) надо было создать отдельный файл рабочей группы, и не пользоваться дефолтным и плюс ко всему отбирать все права у стандартных пользователей и групп. Иначе, при пересоздании файла рабочей группы можно несанкционированно получить все права.

Re: Защитить базу Access от удаления (Сложное администрирование)

Добавлено: 16 ноя 2011, 17:00
kuznetsovSergey
Спасибо Naeel Maqsudov !!

Я думал что ограничить от удаления, можно во внутренний настройки в том числе ) Но это оказалась довольно простая задачка, IT с радостью помогли в этом вопросе :)

А вот с версией Access, у меня 97, потому что лицензий даже не могут найти на 2003 всем. У меня есть и 2003 ... Даже 2010 ... Но коллеги просто не смогут в такую базу зайти. А что значит фраза:
"Если файл создан в более ранней версии, то детальное разграничение доступа еще продолжает рабоать, но уже даже не подлежит изменению."

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

У меня в голове не укладывается, как это реализовать ...
Кланяюсь в ноги ... помогите пожалуйста )

Re: Защитить базу Access от удаления (Сложное администрирование)

Добавлено: 17 ноя 2011, 09:49
Naeel Maqsudov
Ну, в Office 97 как раз с разграничением доступа внутри базы всё обстоит еще довольно хорошо.
Файлы от предыдущих версий нормально открываются, и нормально работают в более поздних, разумеется без поддержки нововведений. Фишка в том, что разграничение прав в настоящее время упразднено. Т.е. перейдя на более новые версии Access вы потеряете возможность изменять назначение прав. Увы этот проект придётся похоронить в довольно обозримом будущем.
Кстати, права на таблицы или формы или отчёты назначаются одинаково. Не думайте, что если Вам надо "именно к конкретной таблице, в определенной учетной записи", то это будет как-то проще ;)
Но давайте по порядку:
1) Что такое учётная запись. Учетная запись и группа, которой она принадлежит хранится в фале рабочей группы. Файл рабочй группы это тоже база Access, но срасширением имени файла mdw. Вы сейчас используете дефолтную группу + авторизацию без пароля. Вы входите в Access под именем Admin. Admin входит в группу Admins. Еще есть стандартная группа Users с пользователем User. Дефолтная авторизация выключается где-то в БазаДанных/Безопасность... Не помню точно. По умолчанию на сколько я помню у обоих учёток пароль пустой.
2) Изначально все пользователи используют собственную копию файла рабочей группы (на своём компьютере).Т.е. де-факто у вас разные Admin-ы (так как они описаны в разных файлах) заходят под одним именем. Использование дефолтного файла рабочей группы - это плохо. Сеячас встроенная учётка Admin является владельцем базы данных и всех её объектов, а значит может взять себе любые права, даже если у неё их нет. Т.е. как бы вы не старались всё красиво настроить на N компьютерах, вашу базу откроет кто-нибудь с N+1 компьютера с дефолтным файлом рабочей группы, и получит доступ к любому объекту.
Когда вы через меню БазаДанных/Безопасность создаёте учётные записи, то изменения вносятся не в вашу базу, а в файл рабочей группы. Т.е. Вам также надлежит разместить его на сетевом диске и для запуска Access использовать другой ярлык, где в командной строке указывать при специальном ключе путь к mdw-файлу. (ключ не помню, см.help)
3) Надо было с самого начала создать новый файл рабочей группы в нужной папке. Запустить Access с этой рабочей группой. Создать новую группу RealAdmins, и нового пользователя RealAdmin. (меню БазаДанных/Безопасность/Разрешения) Затем залогиниться как RealAdmin, и вот только после всего этого создавать базу. А первым делом, после создания базы надо отобрать все права у встроенных учёток и групп на всех объектах, включая шаблон "Новый объект" в каждой категории (он в настройках безопасности определяет профиль дефолных прав для объектов которые будут создаваться.
Такую базу можно будет использовать с данной рабочей группой и только с ней. Файл рабочей группы разумеется надо беречь от порчи пуще самой базы :)
4) Как же быть, если всего этого не было сделано? Теперь придётся изрядно повозиться еще с изменением владельца объектов. Это делается там же: База данных/Безопасность/Разрешения.

PS
Написав всё это я сам наконец-то понял, почему Microsoft отказался от дальнейшей поддержки всего этого зоопарка :)

Re: Защитить базу Access от удаления (Сложное администрирование)

Добавлено: 18 ноя 2011, 11:41
kuznetsovSergey
Ого, спасибо за инфо !!! теперь всё ясно, по поводу файла рабочей группы, я не переживаю, вот почему ... потому что поступил следующим образом:
- создал vbs файл (в котором прописан скрипт запуска аксес, используя определенную рабочую группу)
- юзерам создал ярлык, на этот vbs файл, а саму базу и всё для неё необходимое, спрятал далеко в каталогах папки.

В компании работаю довольно савковые люди, и врят ли они смогут что-то сделать с файлами рабочей группы, их подменить в корыстных целях и т.д. ... Этот проект и есть временный, грядет ERP система, и на первых порах необходимо просто иметь систему, для ввода и структурированного хранения информации, и проведения простейшей аналитики по этим данным.

Попробую сделать, всё как Вы сказали, и действительно очень благодарен Вам !!