用户登录/注销时的 Postgres 事件触发器(会话开始和结束)

问题描述 投票:0回答:1

我正在使用事件触发器,并且可以记录创建表等操作:

CREATE OR REPLACE FUNCTION UpdateTables() returns event_trigger as $$
begin 
  -- do stuff
end;
$$ language 'plpgsql';


create event trigger UpdateTables
   on ddl_command_end
   when tag in ( 'create table', 'alter table', 'drop table' )
   execute procedure UpdateTables();

您能否创建一个事件触发器,每当用户连接(会话开始)和用户断开连接(会话结束)时执行该事件触发器。

我正在运行 PostgreSql 9.6beta4。

postgresql postgresql-9.6
1个回答
0
投票

问题的一部分现在是可行的(即登录触发器)。

最新版本的

pg_tle
可以实现这一点,它将
clientauth
直接挂钩到多种语言(例如 Pl/PgSQL 或 Rust 或 plv8)。 这篇博文(带有代码)解释了如何实现这一点 - .

值得注意的是,

pg_tle
(随 RDS 一起提供)但也是开源的,因此您始终可以将其安装在您自己的 postgres 安装上(EC2 或本地系统)。

© www.soinside.com 2019 - 2024. All rights reserved.