Postgresql限制用户登录错误次数的实例代码

在PostgreSQL中,不同于Oracle的FAILED_LOGIN_ATTEMPTS,无法直接限制用户登录错误次数。但通过session_exec插件配合自定义函数,可以实现类似功能。本文介绍了创建外部表记录日志、建立登录信息表、编写登录执行函数以及配置postgresql.conf的步骤,以限制并解锁用户登录。
摘要由CSDN通过智能技术生成

这篇文章主要介绍了Postgresql限制用户登录错误次数的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。

在oracle中我们可以通过设置FAILED_LOGIN_ATTEMPTS来限制用户密码登录错误的次数,但是在postgresql中是不支持这个功能的。尽管PostgreSQL支持event trigger,可是event局限于DDL,对于登录登出事件是没办法使用event trigger的。

不过像登录新建会话触发某个事件这个需求可以通过hook实现,不过该方法比较复杂,需要修改内核代码,在客户端认证中添加逻辑,判断输入密码次数统计。这里推荐一种比较简单的方法实现类似的功能。

这里我们要使用到session_exec这个插件,使用该插件会在登录时执行一个指定的function。

下载地址:

https://github.com/okbob/session_exec

下载解压之后需要进行以下配置:

set session_preload_libraries to session_execset

session_exec.login_name to name of your login function

该插件有以下特点:

如果函数不存在则会进行警告;

函数执行失败则不允许连接。

利用该插件我们可以写一个简单的函数来实现限制用户登录错误次数的功能。

例子:

1、建立外部表记录数据库日志信息。

CREATE SERVER pglog FOREIGN DATA WRAPPER file_fdw;

CREATE FOREIGN TABLE pglog (
log_time timestamp(3) with time zone,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值