PostgreSQL установить переменную сеанса - PullRequest
0 голосов
/ 07 марта 2020

Мое приложение, которое подключается к PostgreSQL БД с использованием тех же учетных данных (требование провайдера БД ...) Однако мне нужно распознать, какое приложение пользователя подключается к БД (например, для аудита обновлений и т. Д. c)

Интересно, есть ли какой-нибудь способ, которым я могу установить некоторую переменную (срок жизни которой ограничен только сессией), которую затем я могу каким-то образом прочитать с помощью DDL.

** EDIT **

Ive также провел несколько экспериментов, используя application_name в строке подключения и поместив туда простой логин пользователя - но это не самый элегантный способ ...

SET application_name TO 'user_login';
select current_setting('application_name');

Есть идеи, как его заархивировать?

1 Ответ

1 голос
/ 07 марта 2020

Не злоупотребляйте application_name, для этого есть пользовательские переменные ( "настраиваемые параметры" ):

SET my.app_user = 'user_login';
SELECT current_setting('my.app_user');

См .:

...