我试图在用户登录Postgres数据库时想出一种了解方法。有没有办法定义用户登录数据库时触发的触发器?或者是否有表或系统视图在任何人登录数据库时都会更新?
答案 0 :(得分:2)
我不认为SQL级别可以识别登录事件(即没有可以查询的视图,也没有可以创建的触发器)。
但是,您可以编写一个服务器端模块(在C中),它通过ClientAuthentication_hook
拦截登录事件。在服务器尝试对用户进行身份验证之后,但在它发送响应之前,会调用此挂接。
Postgres wiki上有一个ClientAuthentication_hook
的实例。你也可以在Postgres'中找到几个这个钩子的例子。拥有contrib modules。
答案 1 :(得分:0)
Postgres数据库扩展,用于在用户登录时执行som代码, 与Oracle的登录后触发器相当。