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

Откуда:
Сообщений: 472
В общем нужно логировать изменения в таблицах. Сразу напрашивается решение - навесить тригер и лить лог в специальную таблицу. Но есть нюанс - нужно понимать кто эти изменения сделал. Тригер ничего не знает о пользователе, который залогинился в приложении (не путать с пользователем БД).
Вот думаю как сие реализовать. У кого какие мысли есть?
Всем за ранее благодарна!
30 окт 21, 12:01    [22390302]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет - логирование талиц  [new]
x0125
Member

Откуда: moscow
Сообщений: 46
Использовать Customized Options.

https://habr.com/ru/post/44015/

аля контекст сеанса Oracle
30 окт 21, 23:37    [22390481]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет - логирование талиц  [new]
Cola
Member

Откуда:
Сообщений: 472
x0125
Использовать Customized Options.

https://habr.com/ru/post/44015/

аля контекст сеанса Oracle

Сеанс всегда от одного пользователя БД происходит. Кроме того надо значение в тригер передать, не думаю тригер увидит правильную временную таблицу если они все под одним пользователем БД будут создаваться. У меня про пользователя знает только приложение, а сервер БД ничего про него не знает.
31 окт 21, 20:18    [22390751]     Ответить | Цитировать Сообщить модератору
 Re: Нужен совет - логирование талиц  [new]
Maxim Boguk
Member

Откуда: По разному.
Сообщений: 5021
Cola
x0125
Использовать Customized Options.

https://habr.com/ru/post/44015/

аля контекст сеанса Oracle

Сеанс всегда от одного пользователя БД происходит. Кроме того надо значение в тригер передать, не думаю тригер увидит правильную временную таблицу если они все под одним пользователем БД будут создаваться. У меня про пользователя знает только приложение, а сервер БД ничего про него не знает.


Вот приложение и должно тем или иным (из описанных в ссылке способов) при соединении с базой передать пользователя в базу.
И дальше работать в контексте этого конкретного соединения с базой.
Это если конечно нет pgbouncer в режиме transaction pooling... тогда всё становится резко интереснее.
Триггер увидит нужную временную таблицу если она была создана в этом конкретном соединении с базой от приложения.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
31 окт 21, 22:34    [22390803]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить