powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Логирование и/или аудит действий пользователей.
24 сообщений из 24, страница 1 из 1
Логирование и/или аудит действий пользователей.
    #32614115
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите советом или поделитесь опытом кто как делает и как правильнее.

Вводная:
Аутентификация пользователей происходит на уровне клиентского приложения, а не на уровне базы. И это не может быть изменено. АднАзначнА...

Задача:
Необходимо вести детальный лог всех действий пользователя, т.е. кто, когда какое поле в какой таблице он изменил.

Проблема:
Как передать в базу имя пользователя который совершает какое-то действие.

Пока что видится такой вариант. В каждую таблицу в которой необходимо отслеживать изменения добавить фиктивное поле "имя пользователя", и навесить на эту таблицу триггеры(триггер) которые и будут писать лог.

Но мне как-то не очень нравиться вариант с доп. полем... Других вариантов пока не вижу, похоже зациклился на одном и все... А как еще можно передать переменную в триггер? Может есть более красивые решения?

Спасибо.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614123
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doroshkaПроблема:
Как передать в базу имя пользователя который совершает какое-то действие. CURRENT_USER .
Может также пригодиться CURRENT_ROLE
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614147
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий CURRENT_USER .
Может также пригодиться CURRENT_ROLE
не катит, аутентификация на уровне клиента, а не на уровне СУБД...
я тоже только с доп. полем вижу вариант...
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614160
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doroshkaПомогите советом или поделитесь опытом кто как делает и как правильнее.

Вводная:
Аутентификация пользователей происходит на уровне клиентского приложения, а не на уровне базы. И это не может быть изменено. АднАзначнА...



Все юзеры цепляются к БД под одним логином, что ли ? Почему CURRENT_USER не устраивает ?
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614165
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VF Мимопроходящий CURRENT_USER .
Может также пригодиться CURRENT_ROLE
не катит, аутентификация на уровне клиента, а не на уровне СУБД...
Тогда о каких правах и каком аудите вообще может идти речь?
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614166
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В FB 1.5 есть CURRENT_CONNECTION
Заводишь таблицу с ид_юзера (в вашей системе аутентификации) и номером коннекта. При запуске программы, сразу после аутентификации, добавляешь запись в эту таблицу. Чистишь её когда сам придумаешь ;)
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614191
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 МП
да логгирование там надыть... вон hvlad дело говорит, можно и так наверное...
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614195
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Я ещё не проснулся.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614202
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВ FB 1.5 есть CURRENT_CONNECTION
Заводишь таблицу с ид_юзера (в вашей системе аутентификации) и номером коннекта. При запуске программы, сразу после аутентификации, добавляешь запись в эту таблицу. Чистишь её когда сам придумаешь ;)

Недопонял. А как же он будет вести

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

Чего триггеры будут в эту самую таблицу писать ? Торможу, что ли...
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614227
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndriyKoЧего триггеры будут в эту самую таблицу писать ? Торможу, что ли...

Точно торможу. :-) Пошел пить кофе...
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614271
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. А за логгинг кто у тебя отвечать будет (клинет/сервер)?

2.
Пока что видится такой вариант. В каждую таблицу в которой необходимо отслеживать изменения добавить фиктивное поле "имя пользователя", и навесить на эту таблицу триггеры(триггер) которые и будут писать лог.

Before Insert/Update/Delete?

3. Может, пусть клиентское приложение все это и делает? Есть такой компонент в FIBPlus - TDataSetsContainer, которы отлавливает все события твоих наборов данных - ну вот, анализируй их, и протоколируй - хочешь в файл, хочешь - в табличку базы.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614285
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndriyKoВсе юзеры цепляются к БД под одним логином, что ли ?
Да, под SYSDBA.

Ситуация такая: есть рабочее место инженера. Он пришел сел за свой комп, запустил прогу, прога законектилась к базе под пользователем SYSDBA, инженер вбил свой пароль прога проверила "да есть такой" и начинает работать. Чтобы не сделал пользователь с базой все это надо отразить в логе (когда какое поле в какой таблице было изменено и на что...).
Теперь начинается самое интересное...
Чел. уходит покурить и блокирует свое рабочее место (или через n минут оно блокируется само.) При этом коннект к базе остается. К компу подходит другой товарищ. Он может в режиме просмотра работать с базой, но если он вдруг захочет внести изменения, то должен будет ввести свой пароль.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614302
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 mv

1. Хотелось бы чтоб сервер.
2. Угу, только скорее After Insert/Update/Delete
3. Сейчас использую IBX... Да и см. пункт 1.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614325
Фотография AndriyKo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doroshka
Чел. уходит покурить и блокирует свое рабочее место (или через n минут оно блокируется само.) При этом коннект к базе остается. К компу подходит другой товарищ. Он может в режиме просмотра работать с базой, но если он вдруг захочет внести изменения, то должен будет ввести свой пароль.

В этой ситуации, наверно, самое лучшее, использовать способ, предложенный hvlad - ом. Только в клиенте надо по вводу пароля обязательно пересоединиться к БД (для изменения CURRENT_CONNECTION). Способ логгирования клиентом мне лично не нравится из-за того, что все логи будут раскиданы по разным компам и до кучи их собирать - ну его в баню.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614328
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хе-хе, а перед delete ты специально в свое "дополнительно" поле будешь юзера заносить, чтобы триггер знал, кто удалил запись?
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614363
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mvХе-хе, а перед delete ты специально в свое "дополнительно" поле будешь юзера заносить, чтобы триггер знал, кто удалил запись?

Пока выходит так... :-/

Посмотрю что можно выжать из идеи hvlad-a , за что ему огромное спасибо! с(_)
Хотя тут тоже есть небольшое неудобство... У некоторых клиентов до сих пор стоит IB5.6. Но если все забегает с CURRENT_CONNECTION, то будет лишний повод их всех перевести на FB. :)
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614424
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Представляешь, какая тоска: на каждую табличку по три триггера, и в триггере After Update - каждого поля - а не изменилось ли оно, и запись старого и нового значений? Погляди, к примеру, как IBExpert это делает...
А потом извлекать и анализировать всю эту лабуду (не зря же оно протоколировалось)...



Между прочим, есть еще способ - каждой протоколируемой таблице поставить в соответсвие ее структурного близнеца (плюс метка времени (если хочешь), версия записи и идентификатор юзера), и при добавлении/изменении/удалении записи пихать туду ВСЮ информацию плюс идентификационные данные. Просто в реализации - то, что ты хочешь, плюс легкая возможность реализации отката...
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32614789
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mvПредставляешь, какая тоска: на каждую табличку по три триггера, и в триггере After Update - каждого поля - а не изменилось ли оно, и запись старого и нового значений? Погляди, к примеру, как IBExpert это делает...
А потом извлекать и анализировать всю эту лабуду (не зря же оно протоколировалось)...
Естественно надо будет автоматизировать процедуру создания этих триггеров. Возможно и с помощью IBExpert-а
Если FB1.5 - то можно один универсальный вешать на табличку.

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


mv...каждой протоколируемой таблице поставить в соответсвие ее структурного близнеца ...
Спасибо, рассмотрю такой вариант. Проблемму с триггерами - не снимает. Действительно удобно откатываться. Осталось решить надо ли нам это :))
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32616101
dreamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно сделать так таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
user:
    id
    name

action:
    table_name
    table_id
    action_type_id
    user_id
    date

action_type:
    id
    description

Идея такова, что при изменении пользователем, у которого есть свой user.id, любой из таблиц БД в таблице action создается строка, содержащая имя изменяемой таблицы, номер изменяемой в ней строки, описание действия пользователя из таблицы action_type (типа, удалил, добавил, изменил), дата и user.id. По такой таблице потом можно будет выводить отчет действий разных пользователей над любой из строк любой из поддерживаемых такой схемой таблиц.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32618223
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 dreamy

Это все понятно... Вопрос в том, как бы все делать централизованно, а не размазывать на 3 х число_таблиц триггеров + анализ значения каждого поля в триггере.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32618569
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mv2 dreamy

Это все понятно... Вопрос в том, как бы все делать централизованно, а не размазывать на 3 х число_таблиц триггеров + анализ значения каждого поля в триггере.
посмотри как в IBXpert всё это проделано, там в 4 таблицы весь лог пишется, но вот триггеры на каждую таблицу и там поля перечисляются...
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32618571
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Об энтом и говорено... Все очень тоскливо.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32624393
andyshark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, и с паролем masterkey... А потом инженер который что-то не так сделал срочно находит IBE и правит нужные таблички руками скидывая вину на другого юзверя.

А вариант по поводу CURERENT_CONNECTION в принципе самый что ни на есть нормальный. Туда и копай.
...
Рейтинг: 0 / 0
Логирование и/или аудит действий пользователей.
    #32624574
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну так ясный-красный, что если юзер добрался к базе _не_ через клиентское ПО, то никакие логи ему не страшны. А если он получил физические доступ к базе то и пароли ему тоже не страшны. И как не раз тут говорилось, защита базы от несанкционированного доступа - это забота в первую очередь системного администратора, а в последнюю - СУБД...
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Логирование и/или аудит действий пользователей.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]