失敗登入行為輸出至alert日誌

zhcunique發表於2021-02-19

日常運維工作需要關注各個資料庫是否有頻繁的資料庫使用者登入失敗行為,一方面頻繁錯誤密碼登入會導致已增加使用者鎖定策略的資料庫使用者被鎖,影響業務進行,另一方面供分析排查是否為攻擊或試探行為。透過編寫如下觸發器可將錯誤密碼登庫行為明細資訊輸出至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部落格 ” ,連結:http://blog.itpub.net/69994536/viewspace-2757674/,如需轉載,請註明出處,否則將追究法律責任。

相關文章