|
|
|
| Привет!!!
Есть БД с одной таблицей. По сети к ней обращаются около 25 пользователей, из этих 25 вбивают в таблицу 20 чел.
Что можно сделать с безопасностью? Таблица то одна, каждый может ненамеренно удалить записи. И возможно ли отследить виновника? | |
|
| |
|
|
|
| .через разграничение прав доступа
.в интерфейсе "повеситься" на события и вести лог действий пользователя
.перейти на SQL-сервер, а не на файл-сервер
.хз | |
|
| |
|
|
|
| 1 Записи можно отображать статическим набором
1а как вариант записи можно отображать в комбобоксе
2 все операции с записями проводить программно
3 при добавлении записи переводить форму в режим "только добавление"
Ну и логирование никто не запрещал, конечно. | |
|
| |
|
|
|
|
И возможно ли отследить виновника?
|
1.Log-файл или таблица с действиями пользователей
2.На каждое удаление - сто раз спросить "УВЕРЕНЫ?" | |
|
| |
|
|
|
| и на кнопку Delete и F8 - вывести 220В - программно управляемое включение - для особых | |
|
| |
|
|
|
|
3 при добавлении записи переводить форму в режим "только добавление"
|
В этом режиме будет возможность изменять запись, кроме того, как добавить? | |
|
| |
|
|
|
| каждое поле формы - можно выставить в любое состояние.
типа один тип юзеров может менять поле, а другой - только смотреть, третий о нем ваще не догадывается - нету его на форме у него | |
|
| |
|
|
|
| Нет. Там только новая строка. | |
|
| |
|
|
|
|
каждый может ненамеренно удалить записи
|
Они работуют на прамую с таблицей или через форму (например в форме есть кнопки удалить добавить ... и т.п.?) | |
|
| |
|
|
|
|
Они работуют на прамую с таблицей или через форму (например в форме есть кнопки удалить добавить ... и т.п.?)
|
Работают в форме. Кнопки такие есть. | |
|
| |
|
|
|
| Так в чём проблема ?у меня с базей работают примерно 120 чел у меня есть 2 формы 1форма для добавления 2 форма где видеш даные и удалаеш а чтобы потвердить удаления у меня кнопка стоит(Удалить запись) при нажатии поевлаюца две кнопки в той же форме (да и нет) но потом понятно что они делают а чтобы запретит кому то из юзеров удалить что то ты обесни для чиво твая база | |
|
| |
|
|
|
| ты обесни для чиво твая база
|
База обычная, чтото вроде документооборота. Но в ней ничего не удаляется, лишь только добавляется. | |
|
| |
|
|
|
|
|
Таблица то одна, каждый может ненамеренно удалить записи.
|
Мне не нужно удаление. Мне нужен способ, метод, еще что нибудь что бы хоть как то отследить кто удалил строку. Создавать рабочую группу бесполезно. В БД одна таблица, одна форма, и много запросов. И забивают базу около 20 челов. | |
|
| |
|
|
|
| у меня вот так
у каждего юзера свой юзер и пароль и поле "код" в нём какое-то значение(это для тебя)
юзер работает через таблицу но не на прамую так сказать тоблица не потключена к форме а через запрос при нажати на кнопку
docmd.runsql **************** в это время в тоблице добавлаюца даные из формы
и собствено код юзера в твою таблицу
|
плюсы
ты всегда сможеш отследит что добавил твой юзер и когда
в режиме удаления твой юзер удалит только свои данные
если не через запос добавить данные у тебя в таблице будут пустые поле (это потом)
минусы
пока нет
и ещё можеш создать одну таблицу с той жей структурой данных при нажатии удалить запись
сначало записьи копируются в втарую таблицу и потом удалаются с первой | |
|
| |
|
|
|
|
можеш создать одну таблицу с той жей структурой данных при нажатии удалить запись
сначало записьи копируются в втарую таблицу и потом удалаются с первой
|
| |
|
| |
|
|
|
| [/quote]
можеш создать одну таблицу с той жей структурой данных при нажатии удалить запись
сначало записьи копируются в втарую таблицу и потом удалаются с первой
Как это сделать? | |
|
| |
|
|
|
| я чего-то не допонял
есть табла
кто-то пытается в ней грохнуть запись
далее что сделать
сохранить запись в другой табле с указанием юзера это сделавшего
или поместить в "лог" данные о юзере совешившем действие
зачем делать вторую таблу если можно добавить поле Boolean - брать в расчет запись или нет и второе поле кто этот флаг установил, можно еще поле дата с указанием даты установки флага
и по мере необходимости очищать от лишних записей | |
|
| |
|
96 Кб. |
|
| >>> Как это сделать?
можно использовать встроенный механизм Access обеспечения ссылочной целостости данных
при создании и последующем "сохранении" записи в рабочей таблице программно добавлять новую запись со служебной информацией в подчиненную таблицу (связанную с главной c условием Enforce Referential Integrity)
тогда при попытке удалить "сохраненную" запись пользователь получит сообщение о нарушении ссылочной целостности и невозможности удаления данных.
==>>
при работе с данными можно вести два "типа" записей - "сохраненные" и "черновики", если для "черновиков" не создавать связанной записи в подчиненной таблице.
для "черновиков" будут доступны режимы удаления, для "сохраненных" нет. | |
|
| |
|
|
|
| Explorer
Спасибо что пытался объяснить)))
Мог бы ты сделать простой пример на похожую тему? У меня акцесс 2003.
Мне эти слова Enforce Referential Integrity[quote] |
Да и многое из твоих слов для меня темный лес. | |
|
| |
|
|
|
| Сделай связанную таблицу (один-к-одному или один-ко-многим.)
Пусть в ней хранятся просто ID создаваемых записей.
При создании связи:
- Поставь галочку : обеспечить целостность данных
- не ставь галочку: на удалении связанных данных.
Тогда никто не сможет удалить запись в главной таблице, загодя не удалив запись в связанной (вспомогательной) таблице | |
|
| |
|
|
|
| >>> Пусть в ней хранятся просто ID создаваемых записей.
a propos это будет по сути One-to-One, связь :) т.е. одной записи в подчиненной таблице будет соответствовать одна запись в основной.
и в этой таблице "tblSavedRecords" можно держать дату добавления, имя пользователя и другую служебную информацию, а не только ID родительской записи.
но можно сделать полноценную many-to-many и хранить в подчиненной таблице еще и историю изменений данных этой записи, добавив поля FieldName и OldValue, например | |
|
| |
|
|
|
|
| Спасибо. Буду пытаться делать. | |
|
| |
|
|
|
|
| а если база на милион записей?а можыт быть вообше болше этой суммы? | |
|
| |