PostgreSQL 设置会话变量

Mac*_*iej 6 .net postgresql auditing npgsql

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

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

** 编辑 **

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

SET application_name TO 'user_login';
select current_setting('application_name');
Run Code Online (Sandbox Code Playgroud)

知道如何存档吗?

Erw*_*ter 12

不要滥用application_name,有自定义变量(“自定义选项”):

SET my.app_user = 'user_login';
SELECT current_setting('my.app_user');
Run Code Online (Sandbox Code Playgroud)

看: