天天看點

oracle登入時報錯1017,Oracle記錄登入失敗的觸發器

前言:實作的功能主要是,oracle登入成功記錄登入使用者ip位址,登入失敗記錄登入失敗ip位址

1,需要建立一個觸發器記錄登入成功的用戶端使用者的ip位址

大家都知道在v$session 中記錄着用戶端的機器名稱,但是沒有IP , 如果記錄clinet ip 呢?先運作DBMS_SESSION 過程包注冊,然後執行存儲過程on_logon_trigger,這樣當用戶端登陸後,在v$session的client_info列會記錄其相應的IP資訊。

利用 DBMS_SESSION 過程包,先執行

再執行觸發器trigger

執行這些過程包觸發器需要dba權限。

2,然後使用超級管理者通過plsql登入,就可以檢視連接配接上oracle的ip資訊:

執行查詢SQL:

資訊如下所示:

oracle登入時報錯1017,Oracle記錄登入失敗的觸發器

3,建立觸發器實作登入失敗的時候記錄日志資訊:

寫一個觸發器,觸發器的資訊記錄在alert日志裡面,通過檢視alert日志來擷取登入失敗的使用者資訊。

觸發器如下:

執行報錯:

需要賦予權限

grant execute on sys.dbms_system topowerdesk;

之後執行成功了。

4,登入失敗檢視alert資訊

Pslql登入,如下圖所示:

oracle登入時報錯1017,Oracle記錄登入失敗的觸發器

再去背景檢視alert日志,就會看到失敗資訊記錄:

Fri May 15 19:11:09 2015

20150515 191109 logon denied from192.168.120.169 20934 Administrator with plsqldev.exe ? plsqldev.exe

20150515 191109 logon denied from192.168.120.169 20934 Administrator with plsqldev.exe ? plsqldev.exe

Fri May 15 19:11:18 2015

20150515 191118 logon denied from192.168.120.169 20958 Administrator with plsqldev.exe ? plsqldev.exe

20150515 191118 logon denied from 192.168.120.16920958 Administrator with plsqldev.exe ? plsqldev.exe