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

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

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

8 ответов

3 просмотра

Я лично хорошего способа не знаю. Есть 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 нашего продукта, для постг...

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

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
7
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Добрый день, чат. Мне в очередь из других RabbitMQ по shovel валятся метрики в формате текста для Prometheus. Помогите пожалуйста подружить RabbitMQ и Prometheus, чтобы он (...
Aleksey
4
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Карта сайта