Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вопрос новичка  [new]
tarasnn
Member

Откуда: Пермь
Сообщений: 23
А можно ли отследить кто из юзеров вставил/изменил/удалил конкретную запись в таблице? или это фантастика?
6 сен 07, 15:25    [4630587]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116132
Аудит.

Самописный аудит - добавление колонки CUSER, заполняемой в триггере.
6 сен 07, 15:30    [4630634]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
trak
Member

Откуда: spb.ru
Сообщений: 802
tarasnn
А можно ли отследить кто из юзеров вставил/изменил/удалил конкретную запись в таблице? или это фантастика?

Есть например logminer.
6 сен 07, 15:30    [4630636]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Brodiaga
Member

Откуда:
Сообщений: 501
dmidek
Аудит.

Самописный аудит - добавление колонки CUSER, заполняемой в триггере.


Куда колонку добавить?
6 сен 07, 16:33    [4631207]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116132
Brodiaga
dmidek
Аудит.

Самописный аудит - добавление колонки CUSER, заполняемой в триггере.


Куда колонку добавить?


В таблицу.
6 сен 07, 16:34    [4631221]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Brodiaga
Member

Откуда:
Сообщений: 501
Лучше сделать таблицу логов и пакет, который будет генерить триггер аудита на определенную табличку! Тогда будет все видно, кто когда что правил! (Мое мнение :))
6 сен 07, 16:35    [4631227]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Brodiaga
Member

Откуда:
Сообщений: 501
dmidek
Brodiaga
dmidek
Аудит.

Самописный аудит - добавление колонки CUSER, заполняемой в триггере.


Куда колонку добавить?


В таблицу.


Ну тогда там будет виден пользователь с лишь последней модификацией?
6 сен 07, 16:36    [4631241]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Brodiaga
Member

Откуда:
Сообщений: 501
Я не прав?
6 сен 07, 16:37    [4631244]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116132
Brodiaga
dmidek
Brodiaga
dmidek
Аудит.

Самописный аудит - добавление колонки CUSER, заполняемой в триггере.


Куда колонку добавить?


В таблицу.


Ну тогда там будет виден пользователь с лишь последней модификацией?


Да. Вы правы. А с удалением совсем нехорошо :-)
6 сен 07, 16:37    [4631250]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116132
dmidek
Brodiaga
dmidek
Brodiaga
dmidek
Аудит.

Самописный аудит - добавление колонки CUSER, заполняемой в триггере.


Куда колонку добавить?


В таблицу.


Ну тогда там будет виден пользователь с лишь последней модификацией?


Да. Вы правы. А с удалением совсем нехорошо :-)


У меня на прошлой работе все таблицы имели 4 дополнительные колонки.
СTIME, UTIME, CUSER, UUSER - отсюда и возникла идея ...
6 сен 07, 16:43    [4631288]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
realfreeman
Member

Откуда: Москва
Сообщений: 274
Если есть книга Кайта "Эффективное проектирование приложений" - посмотрите там. К сожалению под рукой нет, надеюсь кто-нибудь запостит, что там именно написано. Смысл примерно таков: есть стандартный пакет под создания логов для таблиц. Принцип работы таков - создается представление с таким же именем, а таблица переименовывается. К ней добавляются колонки с пользователем, временем, действием и т.п.
6 сен 07, 16:47    [4631330]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Elic
Member

Откуда:
Сообщений: 29979
realfreeman
Принцип работы таков - создается представление с таким же именем, а таблица переименовывается. К ней добавляются колонки с пользователем, временем, действием и т.п.
STFF Ведение собственного журнала изменений
6 сен 07, 16:57    [4631440]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
realfreeman
Member

Откуда: Москва
Сообщений: 274
Elic
realfreeman
Принцип работы таков - создается представление с таким же именем, а таблица переименовывается. К ней добавляются колонки с пользователем, временем, действием и т.п.
STFF Ведение собственного журнала изменений


Ну извольте. Каков вопрос таков ответ.
6 сен 07, 17:05    [4631510]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
D_i_m
Member

Откуда: Karaganda
Сообщений: 10
я так понимаю, что нужна историчность? тогда без дополнительной таблицы не обойтись. поскольку нужно еще и удаления фиксировать, то таблица совершенно самостоятельная от той, за которой необходимо вести аудит. короче говоря:
создается дополнительная таблица, в которой есть поля:
table_name
user_id (или user_name - кому как нравится)
action
correction_date

затем на исходную таблицу навешиваем триггеры на обновление, удаление и вставку (before), в которых вставляем в созданную таблицу аудита записи с необходимыми полями.

это простой вариант, но мне очень понравились посты на по проведенной ссылке на ветку
автор
Ведение собственного журнала изменений
7 сен 07, 03:24    [4633031]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
SablinIgor
Guest
dmidek
Brodiaga
dmidek
Brodiaga
dmidek
Аудит.

Самописный аудит - добавление колонки CUSER, заполняемой в триггере.


Куда колонку добавить?


В таблицу.


Ну тогда там будет виден пользователь с лишь последней модификацией?


Да. Вы правы. А с удалением совсем нехорошо :-)


Можно пойти дальше - добавить еще одно поле, отвечающее за статус записи - и по нему определять текущую запись и, скажем, архивные
7 сен 07, 09:47    [4633487]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
wgm
Member [заблокирован]

Откуда:
Сообщений: 4739
Грамотный вариант - это создание специальной исторической схемы, где создаются таблицы с именами исходной схемы, а каждая таблица имеет структуру исходной таблицы с добавленным уникальным полем (ID). При этом каждая таблица исходной схемы должна иметь поля 1) Кто последний раз модифицировал запись, 2) Когда последний раз модифицирована запись. Для удобства также полезны поля 1) Кто создал запись, 2) Когда создана запись.
И в триггерах таблиц исходной схемы должно быть заполнение исторических таблиц.
7 сен 07, 09:51    [4633512]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
apps_funtik
Member

Откуда: Москва
Сообщений: 98
select * from v$sql
where sql_text like 'UPDATE %'
and rows_processed > 1
7 сен 07, 12:01    [4634575]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Elic
Member

Откуда:
Сообщений: 29979
apps_funtik
Иди-ка ты лучше конфеты заворачивать
7 сен 07, 12:19    [4634750]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
укнцк
Guest
Elic
Уважаемый, а вот грубить не надо! В отличии от Вас у меня нет просто времени прочитывать то, что поститься ниже. Поэтому дал не точный ответ на неточный вопрос.
7 сен 07, 14:23    [4635959]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18342
укнцк
Elic
Уважаемый, а вот грубить не надо! В отличии от Вас у меня нет просто времени


18см (с)
7 сен 07, 14:28    [4635986]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
укнцк
В отличии от Вас у меня нет просто времени прочитывать то, что поститься ниже.


"Не знал, да еще забыл" (c)
7 сен 07, 14:31    [4636013]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос новичка  [new]
Elic
Member

Откуда:
Сообщений: 29979
укнцк
Уважаемый, а вот грубить не надо! В отличии от Вас у меня нет просто времени прочитывать то, что поститься ниже.
Надо же, бот обиделся и притворился анонимом
7 сен 07, 14:39    [4636088]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить