Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита БД
 
 автор: buka   (12.01.2007 в 11:12)   личное сообщение
 
 

Прошу профессионалов подсказать правильный путь для организации защиты БД.

Общая схема такова:
Десятка три пользователей работают с расшаренным файлом mdb.
Основная их задача - заносить данные в одну общую таблицу. В этой таблице имеется поле, идентифицирующее пользователя. При добавлении записи в это поле автоматически должен заносится правильный идентификатор, т.е. принадлежащий данному пользователю. И, соответственно содержимое этого поля пользователь не должен иметь возможности изменять.
При просмотре данных пользователь имеет право просмативать и изменять только "свои" записи.

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

Поэтому я хотел обойтись легальными средствами, но поизучав рабочие группы, пришел к выводу, что они мне не помогут. Для работы нужно, по любому, разрешить юзеру запись в таблицу - следовательно ему будет доступна вся таблица.

Или я что-то упустил в рабочих группах?

Опытные люди, подскажите, как разумнее всего организовать защиту в таком случае?

  Ответить  
 
 автор: osmor   (12.01.2007 в 11:34)   личное сообщение
 
 

Используя защиту на уровне рабочих групп:
1. запретить пользователям доступ к таблицам
2. запретить изменение запросов и таблиц
3. в таблица добавить текстовое поле NameOwner
4. в формах добавить код который будет при создании (изменении) записи вносить в поле NameOwner значение функции CurrentUser
5. в запросах добавить WITH OWNERACCESS OPTION
6. в источниках записей форм добавить условие отбора with [NameOwner] = CurrentUser()
Ну вроде все

  Ответить  
 
 автор: Buka   (12.01.2007 в 13:41)   личное сообщение
 
 

ВАХХ!!!
Не скажу, что сразу все понял...
Будем работать....

  Ответить  
 
 автор: час   (12.01.2007 в 14:26)   личное сообщение
 
 

Олег, а это что означает? или что даёт?
with [NameOwner] = CurrentUser()

  Ответить  
 
 автор: osmor   (12.01.2007 в 14:45)   личное сообщение
 
 

да ничего не дает.
Погда б... голова с утра болит сил нет
конечно не with, а WHERE

  Ответить  
 
 автор: час   (12.01.2007 в 14:58)   личное сообщение
 
 


По нят но..
если юзер нужный тогда ...
ему отбор его разрешённых записей

  Ответить  
 
 автор: buka   (15.01.2007 в 04:24)   личное сообщение
 
 

То есть, защита огранизуется на уровне формы?
А если юзер откроет таблицу напрямую, тогда ему ничто не мешает её испортить. Верно?

  Ответить  
 
 автор: osmor   (15.01.2007 в 09:34)   личное сообщение
 
 

еще раз внимательно читаем мой ответ
пункт 1.

  Ответить  
 
 автор: Romiras   (16.01.2007 в 10:23)   личное сообщение
 
 

я решил тоже просветиться
пользователей подходит к 10, я устал с ними бороться, а предвидится еще увеличение на 5-6..уффф новый проект буду делать с рабочими группами

  Ответить  
 
 автор: osmor   (16.01.2007 в 10:59)   личное сообщение
 
 

Если разговор идет ТОЛЬКО о защите от пользователей, которым и так дан доступ к БД, то по опыту:
Далеко не все пользователи лезут в таблицы
обычно достаточно защиты от шифта, и отключения окна БД.
пользователь видит только формы, 90% на этом и останавливаются
из оставшихся 10% - половина прекращает свои эксперименты после первого разговора "по душам"
если есть невминяемые, то тогда конечно защита, или бить морду

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList