ITPub博客

首页 > 数据库 > Oracle > 失败登录行为输出至alert日志

失败登录行为输出至alert日志

原创 Oracle 作者:zhcunique 时间:2021-02-19 13:25:26 0 删除 编辑

日常运维工作需要关注各个数据库是否有频繁的数据库用户登录失败行为,一方面频繁错误密码登录会导致已增加用户锁定策略的数据库用户被锁,影响业务进行,另一方面供分析排查是否为攻击或试探行为。通过编写如下触发器可将错误密码登库行为明细信息输出至alert日志中,结合自动化运维工具或人工巡检,可及时发现失败登录行为,第一时间关注处理。

CREATE OR REPLACE TRIGGER logon_denied_to_alert

AFTER servererror ON DATABASE

DECLARE

message   VARCHAR2 ( 168 );

ip        VARCHAR2 ( 15 );

v_os_user VARCHAR2 ( 80 );

v_module  VARCHAR2 ( 50 );

v_action  VARCHAR2 ( 50 );

v_pid     VARCHAR2 ( 10 );

v_sid     NUMBER ;

v_program VARCHAR2 ( 48 );

BEGIN

IF( ora_is_servererror ( 1017 )) THEN

-- get ip FOR remote connections :

IF upper(sys_context( 'userenv' , 'network_protocol' )) = 'TCP' THEN

ip :=sys_context( 'userenv' , 'ip_address' );

END IF;

SELECT sid INTO v_sid FROM sys . v_$mystat WHERE rownum < 2 ;

SELECT p. spid , v .program INTO v_pid , v_program FROM v$process p, v$session v WHERE p. addr = v . paddr AND v .sid = v_sid ;

v_os_user := sys_context( 'userenv' , 'os_user' );

dbms_application_info.read_module ( v_module , v_action );

message := to_char(SYSDATE, 'YYYYMMDD HH24MISS' )|| 'logon denied from' ||nvl( ip , 'localhost' )|| ' ' || v_pid || ' ' || v_os_user || 'with' || v_program || '-' || v_module || ' ' || v_action ;

sys . dbms_system.ksdwrt ( 2 , message );

END IF;

END;

/


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69994536/viewspace-2757674/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
先后就职于银行、券商等金融机构科技部门,从事数据库管理、自动化运维管理与系统运维相关工作,拥有Oracle 11g OCM/OCP证书,通过CFA二级考试。

注册时间:2021-02-04

  • 博文量
    73
  • 访问量
    499674