![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аудит триггером составной транзакции
Гость © (2010-02-03 10:40:00)Доброго дня!
Есть программа, которая выполняет в одной транзакции delete, insert, update. Есть триггер:
create or replace trigger SAMPLE_AUD
before insert or delete or update on SAMPLE_TABLE
for each row
, задача которого отловить все изменения и записать в таблицу аудита. Проблема в том, что отлавливается только insert. Можно ли сделать так, чтобы триггер отрабатывал на каждую команду в транзакции?
Игорь Шевченко (2010-02-15 01:19:00) [21]Petr V. Abramov © (14.02.10 16:48) [43]
Безусловно. Но не все встроенные средства встроены только в Enterprise, audit,например, есть в стандарте. Кроме того, от версии к версии часть встроенных средств переносится из Enterprise в standard.
Petr V. Abramov (2010-02-14 16:48:00) [22]
> Игорь Шевченко © (12.02.10 19:31) [41]
> Как показывает, опять же, практика, попытки заменить встроенные
> в сервер средства оборачиваются велосипедом
тут есть важный частный случай - встроенные средства встроены в Enterprise Edition и не встроены в стандарт.
Кщд (2010-02-13 12:33:00) [23]>Игорь Шевченко © (12.02.10 19:31) [41]
> Как показывает, опять же, практика, попытки заменить встроенные
> в сервер средства оборачиваются велосипедом с квадратными
> колесами и смещенной осью.
повторюсь: своя система авторизации/аутентификации - это не попытка заменить встроенные средства.
отнюдь.
Игорь Шевченко (2010-02-12 19:31:00) [24]ANB (12.02.10 15:13) [40]
> Практика - вот рулез.
Кривая практика - ни разу не рулез.
> Многие встроенные вещи в оракл реализованы довольно громоздко,
> не всегда работоспособны и тяжеловаты в настройке. Частенько
> проще повесить простенький триггер и не мучится. Кстати,
> простенький триггер зачастую шустрее встроенных вещей.
Как показывает, опять же, практика, попытки заменить встроенные в сервер средства оборачиваются велосипедом с квадратными колесами и смещенной осью.
> И на солнце бывают пятна. Так что рулез, но ошибки в его
> книжке тоже есть.
Тут нефигово бы привести примеры.
ANB (2010-02-12 15:13:00) [25]
> Том Кайт - рулез фарева
И на солнце бывают пятна. Так что рулез, но ошибки в его книжке тоже есть.
Практика - вот рулез.
Поддерживаю Кщд. Многие встроенные вещи в оракл реализованы довольно громоздко, не всегда работоспособны и тяжеловаты в настройке. Частенько проще повесить простенький триггер и не мучится. Кстати, простенький триггер зачастую шустрее встроенных вещей.
Архив логи же - штука мощная, но не всегда удобная.
1) Они толстые, у нас их чистят каждый день, причем держат максимум 2 дня.
2) Разбираться в них повесишься.
3) Не всегда в них содержиться ВСЯ нужная информация хотя бы для того же логгирования.
И по поводу прав. Типичная ситуация. Есть 5 юзеров, которые отвечают за конкретный интерфейс. Никто другой вломиться туда не может. В какой то момент выясняется, что в системе сидят кривые данные, из-за того, что кто то что не так настроил или удалил. Первым делом начальство спрашивает - кого драть ? Тут простенькая таблица нам этого кого то вычисляет в течение минуты. Причем со всеми координатами - имя юзера ОС, IP, с какой машины в сети, под каким логином.
Игорь Шевченко (2010-02-05 15:11:00) [26]
> речь сейчас о самописной системе разграничения прав
Том Кайт - рулез фарева
Кщд (2010-02-05 14:33:00) [27]>Sergey13 © (05.02.10 13:57) [35]
32 и 33 ответы на разные вопросы
Вам нужен универсальный ответ?
пожалуйста, 40)
Кщд (2010-02-05 14:32:00) [28]>Игорь Шевченко © (05.02.10 14:09) [36]
в случае, если реализована система "запрещено всё то, что не разрешено", пользователь физически не сможет вызвать операцию, которой у него нет)
речь сейчас о самописной системе разграничения прав, а не о средствах Oracle
создание такой системы оправдано, например, тем, что никто не будет создавать пользователя Oracle для каждого посетителя/зарегистрированного пользователя сайта
и ещё: полезность и эффективность внутреннего аудита средствами Oracle не ставил под сомнение
Игорь Шевченко (2010-02-05 14:09:00) [29]Кщд (05.02.10 13:49) [33]
> а что хочет увидеть администратор системы? конечно, кто
> и когда запустил бизнес-операцию, а вовсе не кашу из изменений
> в массе таблиц
на месте администратора я бы хотел увидеть, что бизнес-операции могут инциировать только те пользователи, которым это положено по штату, а попытки инициации операций другими пользователями блокировались бы на корню с обязательным аудитом заблокированной попытки, чтобы было кого палкой лупить. Подобное поведение реализуется стандартными средствами Oracle.
Sergey13 (2010-02-05 13:57:00) [30]> [32] Кщд (05.02.10 13:44)
> да, простейшая система онлайн-мониторинга автотранспорта
> [33] Кщд (05.02.10 13:49)
> типовая банковская система
И тут Остапа понесло. (с)
8-)
Кщд (2010-02-05 13:54:00) [31]>Sergey13 © (05.02.10 13:35) [31]
"некритичной базке с 3-5 таблиц" - было сказано к тому, что нецелесообразно поднимать архивлоги в некоторых случаях
"изменения в 10-ти таблицах, которые были вызваны выполнением этой операции" - этот тезис относился к необходимости в целях аудита логировать бизнес-операцию и связывать с ней конкретные изменения в таблицах, а не логировать бессвязные dml-изменения
Кщд (2010-02-05 13:49:00) [32]>Игорь Шевченко © (05.02.10 13:22) [30]
как угодно называйте
типовая банковская система
операция движения по счету может породить десятки других операций, соответственно, изменив не один десяток таблиц
теперь представьте, какую кашу выдаст FGA и уж тем более logminer в этом случае
а что хочет увидеть администратор системы? конечно, кто и когда запустил бизнес-операцию, а вовсе не кашу из изменений в массе таблиц
Кщд (2010-02-05 13:44:00) [33]>Sergey13 © (05.02.10 13:09) [29]
>А это нужно для?
да, простейшая система онлайн-мониторинга автотранспорта
для хранения пользуем georaster, для обмена с внешними клиентскими местами - xml
в случае падения базы, в течение 20мин поднимается из вчерашнего бэкапа и прокатывается оперативный лог за текущие сутки
т.о. 20-25мин и база снова в бою
Sergey13 (2010-02-05 13:35:00) [34]> [28] Кщд (05.02.10 13:08)
Во первых я и ненавязывал логмайнер автору ветки, а просто посоветовал глянуть в эту сторону.
Во вторых, я сказал, что наличие подробного аудита еще должно быть железно обосновано, ибо щтука достаточно ресурснозатратная.
У тебя то "некритичной базке с 3-5 таблиц" то "изменения в 10-ти таблицах, которые были вызваны выполнением этой операции".
Ты уж как нибудь определись в своих предположениях. 8-)
Игорь Шевченко (2010-02-05 13:22:00) [35]Кщд (05.02.10 13:08) [28]
> пользователь хочет видеть, кто и когда выполнял операцию
> "перевод средств на счета доходов со счетов будущих доходов",
> а вовсе не изменения в 10-ти таблицах, которые были вызваны
> выполнением этой операции
> также, администратор системы желает знать, какой пользователь
> системы выполнил эту операцию, а совсем не под каким пользователем
> Oracle она была выполнена
Сдается мне, что это автоматизация бардака
Sergey13 (2010-02-05 13:09:00) [36]> [27] Кщд (05.02.10 12:58)
А это нужно для
> [18] Кщд (04.02.10 17:29)
> некритичной базке с 3-5 таблиц
?
ЗЫ: Не надо убеждать меня в "классности" Оракла. 8-)
Кщд (2010-02-05 13:08:00) [37]>Sergey13 © (05.02.10 09:51) [22]
>Для "некритичной базки" ни к чему юзать Оракл (хотя конечно не >возбраняется 8-), и уж тем более прикручивать аудит. ИМХО.
уже писал, что с результатом работы logminer работать гораздо неудобнее, чем с sql-запросами, не говоря уже об объемах архивлогов...
да и разные это вещи - принципиально: пользователь хочет видеть, кто и когда выполнял операцию "перевод средств на счета доходов со счетов будущих доходов", а вовсе не изменения в 10-ти таблицах, которые были вызваны выполнением этой операции
также, администратор системы желает знать, какой пользователь системы выполнил эту операцию, а совсем не под каким пользователем Oracle она была выполнена
Кщд (2010-02-05 12:58:00) [38]>Он просто тупо большой и достаточно сложный если в него смотреть.
>Дистрибутив ФБ весит 2.5 метра и сервер и клиент. Сколько весит Оракл?
зачем FB, когда нажав несколько раз на кнопку next получу нормальную поддержку xml, аналитические ф-ции, хранимый код на java, пользовательские типы, поддержку пользовательских типов, возможность работать с гео-объектами и др. и пр.?)
Sergey13 (2010-02-05 11:23:00) [39]> [25] ANB (05.02.10 11:16)
Ну вот и сравнивай почему
> [22] Sergey13 © (05.02.10 09:51)
> Для "некритичной базки" ни к чему юзать Оракл
ANB (2010-02-05 11:16:00) [40]
> Сколько весит Оракл?
212 метров.