Консультация № 172067
11.09.2009, 01:03
0.00 руб.
0 2 2
Доброго времени суток! Вопрос по Access.
Имеется база данных. Мне необходимо разграничить права пользователей. Первая группа "Администратор" (1 чел) может делать с базой все. Вторая группа "Пользователь" (несколько человек) может редактировать, изменять, добавлять, удалять записи базы данных, но не может менять структуру таблиц, форм, отчетов и.т.д. Третья группа "Гость" (все остальные) может только просматривать данные и все. Расскажите пожалуйста (как можно доступнее) как это сделать.
У меня Access 2003

Обсуждение

Неизвестный
11.09.2009, 02:03
общий
это ответ
Здравствуйте, fomservl!С Access не работал, но у нас на работе стоит программа по гос. статистике, старенькая, в ней реализация прав сделана при запуске, то есть спрашивает группу и пароль к группе. Конечно, все пороли всем извесны но под страхом «смертной казни» (рядом с паролями у компа на стенке висит приказ в котором ясно сказано о том что виновник порчи базы данных будит вносить базу с ноля) некто под чужой группой в программу не лазит.
2
Неизвестный
11.09.2009, 16:49
общий
это ответ
Здравствуйте, fomservl.
Средствами самого Access сделать разграничение прав пользователей невозможно. Как вариант - использовать клиентское приложение, написанное на любом языке программирования, например Visual Basic. Преимущество еще и в том, что это продукты одного разработчика и используется один язык программирования.
Базу можно расположить на удаленном компьютере, в ней добавить таблицу пользователей с указанием их прав, а уже в самой программе в зависимости от уровня пользователя давать или запрещать возможность изменения данных и прочее.
Единственное что обнаружилось при работе нескольких пользователей одновременно при работе с базой Access. Access является условно-многопользовательской базой данных. Можно одновременно нескольким пользователям работать с базой, смотреть данные и прочее, но в момент модификации одной записи может быть заблокирована вся таблица. И другие пользователи не смогут тоже добавить записи, а в некоторых случаях, в зависимости от установленных настроек блокировки таблиц, будет невозможен и просто просмотр данных.
Для избежания подобных проблем советую установить бесплатную версию MS SQL Server - MSDN. Для Ваших задач должно хватить. Ограничения - размер базы кажется 1Гб ( или 4Гб - не помню ) и работа только с одним процессором. При использовании какого-либо бесплатного менеджера Вы сможете в самой базе создать пользователей ( которые могут подключаться к базе ) , создать группы пользователей - каждой можете назначить разрешения на просмотр/редактирование/добавление/удаление записей в любой таблице и многое другое. MSDN это полноценная многопользовательская база данных.
Небольшие отличия в языке SQL - при преобразовании типов данных, например, используется функция CONVERT ( "smalldatetime", ... ) вместо cDate и немного других. Но в целом все похоже.
Но в таком случае написание клиентского приложения на любом языке программирования обязательно.
Я на работе как раз этим и занимаюсь - создание и сопровождение ПО для бухгалтерии и прочих участков. Вначале работали с Foxpro, потом с Access, теперь перешли на MSDN. Структура таблиц осталась практически та же, только клиентская часть переписывалась.
С уважением.
5
Форма ответа