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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Контроль БД без sql server
 
 автор: Виссарион   (09.09.2011 в 09:06)   личное сообщение
 
 

Привет!!!
Есть БД с одной таблицей. По сети к ней обращаются около 25 пользователей, из этих 25 вбивают в таблицу 20 чел.
Что можно сделать с безопасностью? Таблица то одна, каждый может ненамеренно удалить записи. И возможно ли отследить виновника?

  Ответить  
 
 автор: Силblч   (09.09.2011 в 09:11)   личное сообщение
 
 

.через разграничение прав доступа
.в интерфейсе "повеситься" на события и вести лог действий пользователя
.перейти на SQL-сервер, а не на файл-сервер
.хз

  Ответить  
 
 автор: Йожык   (09.09.2011 в 12:43)   личное сообщение
 
 

1 Записи можно отображать статическим набором
1а как вариант записи можно отображать в комбобоксе
2 все операции с записями проводить программно
3 при добавлении записи переводить форму в режим "только добавление"

Ну и логирование никто не запрещал, конечно.

  Ответить  
 
 автор: Дядя Федор   (09.09.2011 в 13:05)   личное сообщение
 
 


И возможно ли отследить виновника?


1.Log-файл или таблица с действиями пользователей
2.На каждое удаление - сто раз спросить "УВЕРЕНЫ?"

  Ответить  
 
 автор: kot_k_k   (09.09.2011 в 13:07)   личное сообщение
 
 

и на кнопку Delete и F8 - вывести 220В - программно управляемое включение - для особых

  Ответить  
 
 автор: Виссарион   (09.09.2011 в 13:26)   личное сообщение
 
 


3 при добавлении записи переводить форму в режим "только добавление"


В этом режиме будет возможность изменять запись, кроме того, как добавить?

  Ответить  
 
 автор: kot_k_k   (09.09.2011 в 13:42)   личное сообщение
 
 

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

  Ответить  
 
 автор: Йожык   (09.09.2011 в 16:16)   личное сообщение
 
 

Нет. Там только новая строка.

  Ответить  
 
 автор: ddi   (10.09.2011 в 09:32)   личное сообщение
 
 


каждый может ненамеренно удалить записи


Они работуют на прамую с таблицей или через форму (например в форме есть кнопки удалить добавить ... и т.п.?)

  Ответить  
 
 автор: Виссарион   (12.09.2011 в 07:58)   личное сообщение
 
 


Они работуют на прамую с таблицей или через форму (например в форме есть кнопки удалить добавить ... и т.п.?)


Работают в форме. Кнопки такие есть.

  Ответить  
 
 автор: ddi   (12.09.2011 в 08:23)   личное сообщение
 
 

Так в чём проблема ?у меня с базей работают примерно 120 чел у меня есть 2 формы 1форма для добавления 2 форма где видеш даные и удалаеш а чтобы потвердить удаления у меня кнопка стоит(Удалить запись) при нажатии поевлаюца две кнопки в той же форме (да и нет) но потом понятно что они делают а чтобы запретит кому то из юзеров удалить что то ты обесни для чиво твая база

  Ответить  
 
 автор: Виссарион   (12.09.2011 в 08:39)   личное сообщение
 
 

ты обесни для чиво твая база


База обычная, чтото вроде документооборота. Но в ней ничего не удаляется, лишь только добавляется.

  Ответить  
 
 автор: ddi   (12.09.2011 в 08:42)   личное сообщение
 
 

так зачем тебе удаление?

  Ответить  
 
 автор: Виссарион   (12.09.2011 в 08:47)   личное сообщение
 
 


так зачем тебе удаление?




Таблица то одна, каждый может ненамеренно удалить записи.


Мне не нужно удаление. Мне нужен способ, метод, еще что нибудь что бы хоть как то отследить кто удалил строку. Создавать рабочую группу бесполезно. В БД одна таблица, одна форма, и много запросов. И забивают базу около 20 челов.

  Ответить  
 
 автор: ddi   (12.09.2011 в 09:00)   личное сообщение
 
 

у меня вот так
у каждего юзера свой юзер и пароль и поле "код" в нём какое-то значение(это для тебя)
юзер работает через таблицу но не на прамую так сказать тоблица не потключена к форме а через запрос при нажати на кнопку

docmd.runsql **************** в это время в тоблице добавлаюца даные из формы 
и собствено код юзера в твою таблицу 

плюсы
ты всегда сможеш отследит что добавил твой юзер и когда
в режиме удаления твой юзер удалит только свои данные
если не через запос добавить данные у тебя в таблице будут пустые поле (это потом)
минусы
пока нет
и ещё можеш создать одну таблицу с той жей структурой данных при нажатии удалить запись
сначало записьи копируются в втарую таблицу и потом удалаются с первой

  Ответить  
 
 автор: Виссарион   (12.09.2011 в 09:47)   личное сообщение
 
 


можеш создать одну таблицу с той жей структурой данных при нажатии удалить запись
сначало записьи копируются в втарую таблицу и потом удалаются с первой

  Ответить  
 
 автор: Виссарион   (12.09.2011 в 09:50)   личное сообщение
 
 

[/quote]
можеш создать одну таблицу с той жей структурой данных при нажатии удалить запись
сначало записьи копируются в втарую таблицу и потом удалаются с первой

Как это сделать?

  Ответить  
 
 автор: snipe   (12.09.2011 в 09:58)   личное сообщение
 
 

я чего-то не допонял

есть табла
кто-то пытается в ней грохнуть запись

далее что сделать
сохранить запись в другой табле с указанием юзера это сделавшего
или поместить в "лог" данные о юзере совешившем действие

зачем делать вторую таблу если можно добавить поле Boolean - брать в расчет запись или нет и второе поле кто этот флаг установил, можно еще поле дата с указанием даты установки флага
и по мере необходимости очищать от лишних записей

  Ответить  
 
 автор: Explorer   (12.09.2011 в 10:27)   личное сообщение
96 Кб.
 
 

>>> Как это сделать?

можно использовать встроенный механизм Access обеспечения ссылочной целостости данных

при создании и последующем "сохранении" записи в рабочей таблице программно добавлять новую запись со служебной информацией в подчиненную таблицу (связанную с главной c условием Enforce Referential Integrity)

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

==>>

при работе с данными можно вести два "типа" записей - "сохраненные" и "черновики", если для "черновиков" не создавать связанной записи в подчиненной таблице.

для "черновиков" будут доступны режимы удаления, для "сохраненных" нет.

  Ответить  
 
 автор: Виссарион   (12.09.2011 в 14:44)   личное сообщение
 
 

Explorer
Спасибо что пытался объяснить)))
Мог бы ты сделать простой пример на похожую тему? У меня акцесс 2003.
Мне эти слова

Enforce Referential Integrity[quote]


Да и многое из твоих слов для меня темный лес.

  Ответить  
 
 автор: Йожык   (12.09.2011 в 15:24)   личное сообщение
 
 

Сделай связанную таблицу (один-к-одному или один-ко-многим.)
Пусть в ней хранятся просто ID создаваемых записей.

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

Тогда никто не сможет удалить запись в главной таблице, загодя не удалив запись в связанной (вспомогательной) таблице

  Ответить  
 
 автор: Explorer   (12.09.2011 в 16:25)   личное сообщение
 
 

>>> Пусть в ней хранятся просто ID создаваемых записей.

a propos это будет по сути One-to-One, связь :) т.е. одной записи в подчиненной таблице будет соответствовать одна запись в основной.

и в этой таблице "tblSavedRecords" можно держать дату добавления, имя пользователя и другую служебную информацию, а не только ID родительской записи.

но можно сделать полноценную many-to-many и хранить в подчиненной таблице еще и историю изменений данных этой записи, добавив поля FieldName и OldValue, например

  Ответить  
 
 автор: Йожык   (12.09.2011 в 19:04)   личное сообщение
 
 

  Ответить  
 
 автор: Виссарион   (13.09.2011 в 08:00)   личное сообщение
 
 

Спасибо. Буду пытаться делать.

  Ответить  
 
 автор: ddi   (13.09.2011 в 08:29)   личное сообщение
 
 

мда)

  Ответить  
 
 автор: ddi   (13.09.2011 в 08:31)   личное сообщение
 
 

а если база на милион записей?а можыт быть вообше болше этой суммы?

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