0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 18
1

Администрирование БД. Разграничить права пользователям

17.02.2014, 08:33. Показов 5885. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ всем доброго дня!
Кто знает как в MS Access обстоят дела с администрированием?
Мне нужно чтобы было хотябы 3 профиля с разными правами:
1 просматривать бд
2 просматривать и добавлять клиентов
3 полный доступ
428.rar
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2014, 08:33
Ответы с готовыми решениями:

Как в access 2007 разграничить права пользователей?
Как в access 2007 разграничить права пользователей? Например, чтобы несколько пользователей имели...

Права доступа отдельным пользователям
Мир всем. В общем есть несколько запросов и несколько пользователей (вход по логину\паролю),...

Можно разграничить права доступа в MS SQL CE? Если нет, то посоветуйте, где можно
Сейчас у меня в приложении хранятся данные в Sqlite бд. Появилась необходимость разграничить права...

как создать пользователя с правами системного администратора без права передавать эти права другим пользователям??
Здравствуйте! Подскажите как создать пользователя с правами системного администратора без права...

32
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 09:29 2
Много вариантов...
Например файлом рабочей группы, об этом полно в интернете.
Расскажу про свой: Создаешь таблицу пользователей, в ней различные поля (чекбоксы) доступа, например "Просмотр", "Администрирование", "Отчетность" и т.д.
Также создаешь поля "Сотрудник", "Логин", "IP", "Имя компьютера", по которым и будет определяться доступ.
При входе в БД функцией Environ определяешь COMPUTERNAME/USERNAME и согласно доступу формируешь меню (скрываешь/открываешь кнопки), например
Visual Basic
1
cbar.Controls("Действия").Controls("Акт по услугам").Visible = Отчетность
Если доступ только на просмотр, на событие кнопок форм (например "Сохранить") прописываешь Exit sub.
Не забываешь также включить защиту от Shift.
Вот вкратце, хоть и не совсем защита на 100%, но весьма мобильная.
1
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 18
17.02.2014, 09:58  [ТС] 3
трудновато для новичка
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 10:19 4
Boxer1nLane, начни, потом подскажем.
Сперва создай пользовательское меню с кнопками открытия различных форм, отчетов и т.д.
1. Создай таблицу "Сотрудники".
2. Создай макрос с именем AutoExec (этот макрос запускается при открытии БД), где создай макрокоманду ЗапускПрограммы на функцию Старт().
3. В функции Старт():
3.1 Определи имя пользователя.
3.2 Считай из т. "Сотрудники" доступы для этого пользователя.
3.3. Измени меню.
1
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 18
17.02.2014, 10:56  [ТС] 5
сделаю отпишусь
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 18
17.02.2014, 17:57  [ТС] 6
Блин ковырялся, ковырялся - получилась только форма (главная), access для меня чужд. 428 2003.rar
Есть способ попроще? не обязательно сильную защиту ставить, достаточно что бы простой юзер(оператор кол центра) не смог случайно чтонить добавить или изменить.
0
Эксперт MS Access
17533 / 7285 / 1663
Регистрация: 21.06.2012
Сообщений: 13,956
17.02.2014, 18:22 7
Цитата Сообщение от Boxer1nLane Посмотреть сообщение
Есть способ попроще? не обязательно сильную защиту ставить, достаточно что бы простой юзер(оператор кол центра) не смог случайно чтонить добавить или изменить.
Если база разделена на интерфейс и данные - сделайте два разных интерфейса (для операторов и администраторов), закрыв в них доступ к таблицам и т.п. И ставьте операторам их ограниченный интерфейс.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 19:16 8
Цитата Сообщение от Boxer1nLane Посмотреть сообщение
Блин ковырялся, ковырялся - получилась только форма (главная)
Полдела сделал, молоток. Исправь только поле АдминистРирование в таблице.
Создай модуль, в нем функцию Старт(), в ней:
Visual Basic
1
2
3
4
User = Environ("Username") ' определить пользователя/логин
Админ = Application.DLookup("[Администрирование]", "Сотрудники", "[Логин] = '" & User & "'") ' определить роль
' также определить другие разрешения для него
cbar.Controls("Действия").Controls("Акт по услугам").Visible = Админ ' скрыть/открыть кнопки меню
Про создание меню поищи в инете, там полно информации.
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Если база разделена на интерфейс и данные - сделайте два разных интерфейса (для операторов и администраторов), закрыв в них доступ к таблицам и т.п. И ставьте операторам их ограниченный интерфейс.
О, нене, только не так! А если править что придется? 2 файла? только не это!
0
Эксперт MS Access
17533 / 7285 / 1663
Регистрация: 21.06.2012
Сообщений: 13,956
17.02.2014, 19:30 9
Цитата Сообщение от Rube Посмотреть сообщение
О, нене, только не так! А если править что придется? 2 файла? только не это!
Это почему же? Для простых интерфейсов и двух групп пользователей нормальный вариант. Делаете форму в общем со всеми возможностями изменения, экспортируете ее в ограниченный и блокируете все/нужные поля. Программирование измененной формы по таблице разрешений будет проще?
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 18
17.02.2014, 19:41  [ТС] 10
Rube, Всё сделал как ты сказал, но походу не доделал чего то=( 428 2003.rar глянь
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 18
17.02.2014, 20:00  [ТС] 11
ltv_1953, а как заблокировать поля, кнопки на форме?
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 20:08 12
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Программирование измененной формы по таблице разрешений будет проще?
Почему программирование формы? Речь про скрытие кнопок меню для различных пользователей, а форма одна у всех, ее не трогаем. Вот только открыть ее не каждый сможет.
Boxer1nLane, не модуль надо обзывать "Старт" (его название любое придумай), а функцию в нем:
Visual Basic
1
2
3
Function Старт()
' тут код
End Function
В т. Пользователи пропиши в поле Логин свои данные, т.е. твой текущий Environ("Username").
Получить его можно в окне VBA Immediate (в меню View) прописав ?Environ("Username") и нажав Enter
Ну и дебаж по F8 функцию Старт, смотри что получается. Только ты еще меню не сделал, но это 5 мин работы.
0
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 18
17.02.2014, 20:43  [ТС] 13
Rube, ты меня окончательно запутал=( ничего не получилось, что то не то делаю.. ещё завтро сдавать
"меню" ты имеешь ввиду где выбирается пользователь?
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 21:02 14
Boxer1nLane, нет, меню это меню, панель инструментов если так понятней. Наверху, где менюшки файл, вид, помошь и т.д.
0
Эксперт MS Access
17533 / 7285 / 1663
Регистрация: 21.06.2012
Сообщений: 13,956
17.02.2014, 21:40 15
Цитата Сообщение от Rube Посмотреть сообщение
Почему программирование формы? Речь про скрытие кнопок меню для различных пользователей, а форма одна у всех, ее не трогаем.
Почему только скрытие кнопок меню. А те формы, которые вызываются из меню для всех одинаковы? Или в меню буду разные пункты для вызова формы для просмотра или редактирования клиентов?
В общем случае придется программировать блокировку конкретных полей в формах и т.п., в зависимости от полномочий пользователя. Обычно есть таблица Пользователи/Объекты с разрешениями. Ее и используют в событиях открытия и/или загрузки, для проверки, есть ли разрешение на открытие формы, указания режима данных формы, скрытия/блокировки/запрета доступа к конкретным полям.

Добавлено через 12 минут
Цитата Сообщение от Boxer1nLane Посмотреть сообщение
ltv_1953, а как заблокировать поля, кнопки на форме?
Для кнокпи (запрет доступа): Me.Êíîïêà21.Enabled = False
Для поля (запрет изменений): Me.Поле1.Locked = True
Для формы (запрет изменений):
Visual Basic
1
2
3
Me.AllowAdditions = False
Me.AllowDeletions = False
Me.AllowEdits = False
Другой вариант - сделать источник записей статическим.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 21:44 16
ltv_1953, Допустим есть форма "Отчетность", вызывается из меню "Сервис" кнопкой "Отчеты". Тем пользователям у которых в т.Пользователи поле Отчетность = true, кнопку показываем. остальным скрываем.
А если допустим у пользователя только просмотр какой либо формы, без возможности сохранить внесенные изменения, то просто вешаем Exit Sub на Click кнопки сохранения. Ну или блокировку полей делать, где они ничего не должны вносить.
0
Эксперт MS Access
17533 / 7285 / 1663
Регистрация: 21.06.2012
Сообщений: 13,956
17.02.2014, 22:17 17
Цитата Сообщение от Rube Посмотреть сообщение
А если допустим у пользователя только просмотр какой либо формы, без возможности сохранить внесенные изменения, то просто вешаем Exit Sub на Click кнопки сохранения. Ну или блокировку полей делать, где они ничего не должны вносить.
И как это сделать скрывая кнопки в меню. Это уже программирование в формах, о чем и было сразу написано. И как это согласуется с предыдущим Вашим утверждением
Цитата Сообщение от Rube Посмотреть сообщение
Почему программирование формы? Речь про скрытие кнопок меню для различных пользователей, а форма одна у всех, ее не трогаем.
Добавлено через 16 минут
Нашлась Работа с таблицей метаданных и блокировка полей в ней.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 22:35 18
Цитата Сообщение от ltv_1953 Посмотреть сообщение
И как это сделать скрывая кнопки в меню.
Это уже другая суть. Есть формы, которые доступны всем, но вот вносить изменения кому то нельзя. Для них и ставим запрет нажатия кнопки в форме.
А есть формы которые не надо вообще показывать пользователям, вот для них то и скрываем в меню кнопки открытия этих форм.
Т.е. это два независимых друг от друга решения.
0
Эксперт MS Access
17533 / 7285 / 1663
Регистрация: 21.06.2012
Сообщений: 13,956
17.02.2014, 22:43 19
Цитата Сообщение от Rube Посмотреть сообщение
Т.е. это два независимых друг от друга решения.
Понятно. И без второго не обойтись. А про метаданные почитайте по ссылке. Да и другие сходные темы по этому слову поищите - это общая работающая схема.
1
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
17.02.2014, 22:45 20
Цитата Сообщение от ltv_1953 Посмотреть сообщение
А про метаданные почитайте по ссылке
Окай, если это что то новое и полезное, то почитаем.
0
17.02.2014, 22:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2014, 22:45
Помогаю со студенческими работами здесь

Разграничить права админам
Доброго времени суток, как можно сделать следующее: Разные администраторы в админке сайта должны...

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

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

Как разграничить права доступа на редактирование записей в БД
Пишу программу, и там происходит разделение пользователей по уровню доступа. Вроде делаю всё верно,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru