PostgreSQL 设置会话变量

PostgreSQL set session variable

我的应用程序使用相同的凭据连接到 PostgreSQL 数据库(数据库提供程序要求...) 但是我需要识别哪些应用程序用户正在连接到数据库(例如,用于更新审计等)

我想知道是否有任何方法可以设置一些变量(生命仅限于会话),然后我可以通过 DDL 以某种方式读取。

** 编辑 **

我也做了一些实验,在连接字符串中使用 application_name 并在那里放置简单的用户登录 - 但这不是最优雅的方式...

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

知道如何存档吗?

不要为此滥用 application_name, there are custom variables ("customized options"):

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

参见:

  • User defined variables in PostgreSQL