Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
Привет всем Участникам! Кто может подсказать что-нибудь дельное по аудиту действий пользователей в КИС? Как спроектировать для хранения и как фиксировать факты действий пользователей? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 18:54 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
Это сложно описать в двух словах. Можно сделать так: для каждой таблицы DATS создаются еще две - DAT1 (содержит только ключ DATS и, возможно, служебную информацию) и DATH (DATS + идентификатор версии-ссылка на таблицу VERS). VERS содержит информацию о пользователе, времени изменения и т.п. Заполняется все это триггерами. Может понадобиться и таблица DAT2 для группы связанных таблиц (главная+подчиненные) - в нее записывается последовательность изменений всей группы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 19:24 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
Получается, что Названия изменяемых полей в триггере надо прописывать ручками? :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 10:09 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
Я делаю так: создаю одну таблицу RegBook. В неё пишу все изменения по другим таблицам БД: значение до изменения, значение после изменения, значение уникального поля новой записи, код пользователя, осуществившего изменения, время изменения. Информация о пользователях и таблицах БД хранится в двух других таблицах соответствено. Этот подход удобен тем, что не раздувается словарь баз данных, увеличивается производительность приложения по сравнению с методом журналирования "помечение записей". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 10:56 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
А еще удобно управлять журналированием на клиенте с использованием такого подхода. У меня нужные действия по нему ведутся на сервере приложений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 10:57 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
На практике тотальный аудит редко бывает нужен. Нужно фиксировать отдельные факты. Это резко упрощает задачу. Вот, например, простейшая табличка, которая уже выполняет роль аудиторской: 1. Дата и время факта, 2. Кто породил факт, 3. К какому типу фактов относится сей факт, 4. Что собой представляет сей факт, 5. Ссылка на тип источника, над которым свершен факт, 6. Ссылка на источник, над которым свершен факт, 7 Дополнительные сведения об этом факте (в общем случае, для заполнения не обязательно - только если требуется развернуть). Фиксировать следует только критичные факты. Еще пара соображений: - Если структура данных предусматривает хранение истории, аудит можно совместить с историей. - Полезно помимо таблиц поддержки аудита в изменяемых таблицах иметь поля для фиксации даты-времени последнего изменения и кода пользователя, который это изменение устроил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:11 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
2Shtock : Не совсем понял смысл фразы : значение уникального поля новой записи, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:15 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
2Urri Мне нужно знать какое поле в таблице было изменено. И не хочется в триггерах везде прописывать ивно IF UPDATE(Имя_Поля). :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:17 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
Тогда в общем случае без триггеров или вызываемых вами же вручную процедур не обойтись. Как сделать чтобы не писать множественные конструкции для всех полей? Учите матчасть - разные средства разработки по-разному предоставляют / не предоставляют такую возможность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:23 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
To Kostya: по правилам проектирования БД каждая запись должна иметь уникальное поле, однозначно идентифицирующее ее. Именно это я и имел ввиду. Кстати, у меня еще есть поле "Характер изменений". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:28 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
Там хранится значение этого уникального ключевого поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:29 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
2ALL именно Urri сформулировал мою проблему. Как сделать чтобы не писать множественные конструкции для всех полей? Остальные проблемы я вроде бы решил. Жаль что функция UPDATE() в MS SQL2000 не работает с переменными в качестве параметра, а то я бы решил эту проблему. :((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 12:46 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
2 Получается, что Названия изменяемых полей в триггере надо прописывать ручками? :(( Мы делали это с помощью самодельного перпроцессора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 13:58 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
2Guest Ой МАМА, я и слов то таких не знаю. Значит придется все прописывать. :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 15:20 |
|
||
|
Журнал изменений
|
|||
|---|---|---|---|
|
#18+
Помотрите утилиту IBExpert. (IBExpert.com) Правда, работает с InterBase, но, думаю, разницы в принципе никакой. Там они предлагают сервис - типа Вашего аудита. По вашему запросу генерят таблицу для сохранения истории, и указинием кто, когда и что сделал. Очень интересно и просто. Всего-то - поставить какой-нибудь Interbase/FireBird/Yaffil и - вперед. SQL, правда, чуть-чуть отличается от MS SQL. Зато идея - на поверхности, бери и юзай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 15:27 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=173&tid=1546649]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 282ms |
| total: | 429ms |

| 0 / 0 |
