172 похожих чатов

Добрый день, подскажите, есть ли в последних версиях постгреса хороший

способ передачи дополнительного значения из серверного кода в триггер? Конкретно - нужно передавать имя юзера для записи в таблицу аудита

8 ответов

13 просмотров

Я лично хорошего способа не знаю. Есть custom session variables, но у них проблемы с транзакционностью. Можно "запилить" свои функции вроде set_session_var / get_session_var на PL/что-нибудь (у чего есть session-wide state, например pl/tcl или pl/perl) — но придётся ставить этот язык, и интерпретатор грузится в каждую сессию. Может, в сторонних расширениях что-то есть, не искали?

Dmitry-B. Автор вопроса

https://postgrespro.ru/docs/postgresql/13/functions-info current_user - вполне себе, если пользователь - пользователь СУБД.

Dmitry B.
ставить стороннее не хотелось бы :(

Если придумаете что-то получше перечисленного, хоть расскажите... Может, Вы уже какие-то другие варианты рассматривали?

Михаил Шурутов
https://postgrespro.ru/docs/postgresql/13/function...

А я сразу подумал, что это что-то "левое". ;) Если что-то встроенное, то тут всё просто, да.

Yaroslav Schekin
А я сразу подумал, что это что-то "левое". ;) Если...

Но, я повторюсь, эта функция работает, если нужный пользователь является пользователем СУБД. Когда пользователь - только пользователь приклада, и хранится только в отдельной таблице соответствующей БД, надо колхозить с установкой сессионных переменных и использовать эти переменные в триггере (первое, что приходит в голову).

Dmitry-B. Автор вопроса
Михаил Шурутов
https://postgrespro.ru/docs/postgresql/13/function...

нет, юзер на уровне API нашего продукта, для постгреса это просто строка

Dmitry B.
нет, юзер на уровне API нашего продукта, для постг...

Тогда колхозить с установкой сессионных переменных, как минимум. Увы.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта