Oracle預警使用者登入鎖定、過期及其審計資訊
文章版權所有 Jusin Hao(luckyfriends) ,支援原創,轉載請註明
----建立儲存過程(預警使用者登入鎖定、過期及其審計資訊)
CREATE OR REPLACE PROCEDURE CUX_USERLOCK_ALERT as
SUBJECT varchar2(100);
INFO_USER1 varchar2(4000);
INFO_USER2 varchar2(4000);
v_lock_status number;
BEGIN
------根據使用者狀態是否鎖定
select count(1)
into v_lock_status
from dba_users a
where a.username in
('SCOTT')
and a.account_status in ('LOCKED', 'LOCKED(TIMED)', 'EXPIRED',
'EXPIRED & LOCKED(TIMED)', 'EXPIRED & LOCKED');
---輸出鎖定使用者的相關資訊(鎖定時間、審計資訊)
if v_lock_status <> 0 then
SUBJECT := 'ERP-SIT-DB User Lock Status Alert Info';
INFO_USER1 := 'Oracle EBS資料庫使用者鎖定相關資訊:' || '%' || chr(13) || chr(10) ||
'使用者名稱 使用者狀態 鎖定時間 使用者主機 操作物件 動作';
for cur1 in (select dat.username,
du.account_status,
du.lock_date,
dat.userhost,
dat.timestamp,
dat.obj_name,
dat.action_name
from dba_audit_trail dat, dba_users du
where (dat.obj_name = du.username or
dat.username = du.username)
and trunc(dat.timestamp) = trunc(sysdate)
and du.username in ('SCOTT')
and du.account_status in
('LOCKED', 'LOCKED(TIMED)', 'EXPIRED',
'EXPIRED & LOCKED(TIMED)', 'EXPIRED & LOCKED'))
loop
INFO_USER2 := cur1.username || ','|| cur1.account_status || ','|| cur1.lock_date || ','|| cur1.userhost || ','|| cur1.timestamp || ','|| cur1.obj_name || ','|| cur1.action_name;
insert into t_audit1 values(INFO_USER2);
commit;
--INFO_USER1 := INFO_USER1 || chr(13) || chr(10) || INFO_USER2;
end loop;
--send_mail(SUBJECT,INFO_USER1); ---傳送郵件過程
end if;
end;
---顯示授權
grant select to dba_users to system;
grant select to dba_audit_trail dat to system;
----建立job(每個兩小時執行一次)
begin
sys.dbms_job.submit(job => :job,
what => 'begin CUX_USERLOCK_ALERT; end;',
next_date => to_date('09-06-2014 18:25:34', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'SYSDATE+2/24');
commit;
end;
/
----建立儲存過程(預警使用者登入鎖定、過期及其審計資訊)
CREATE OR REPLACE PROCEDURE CUX_USERLOCK_ALERT as
SUBJECT varchar2(100);
INFO_USER1 varchar2(4000);
INFO_USER2 varchar2(4000);
v_lock_status number;
BEGIN
------根據使用者狀態是否鎖定
select count(1)
into v_lock_status
from dba_users a
where a.username in
('SCOTT')
and a.account_status in ('LOCKED', 'LOCKED(TIMED)', 'EXPIRED',
'EXPIRED & LOCKED(TIMED)', 'EXPIRED & LOCKED');
---輸出鎖定使用者的相關資訊(鎖定時間、審計資訊)
if v_lock_status <> 0 then
SUBJECT := 'ERP-SIT-DB User Lock Status Alert Info';
INFO_USER1 := 'Oracle EBS資料庫使用者鎖定相關資訊:' || '%' || chr(13) || chr(10) ||
'使用者名稱 使用者狀態 鎖定時間 使用者主機 操作物件 動作';
for cur1 in (select dat.username,
du.account_status,
du.lock_date,
dat.userhost,
dat.timestamp,
dat.obj_name,
dat.action_name
from dba_audit_trail dat, dba_users du
where (dat.obj_name = du.username or
dat.username = du.username)
and trunc(dat.timestamp) = trunc(sysdate)
and du.username in ('SCOTT')
and du.account_status in
('LOCKED', 'LOCKED(TIMED)', 'EXPIRED',
'EXPIRED & LOCKED(TIMED)', 'EXPIRED & LOCKED'))
loop
INFO_USER2 := cur1.username || ','|| cur1.account_status || ','|| cur1.lock_date || ','|| cur1.userhost || ','|| cur1.timestamp || ','|| cur1.obj_name || ','|| cur1.action_name;
insert into t_audit1 values(INFO_USER2);
commit;
--INFO_USER1 := INFO_USER1 || chr(13) || chr(10) || INFO_USER2;
end loop;
--send_mail(SUBJECT,INFO_USER1); ---傳送郵件過程
end if;
end;
---顯示授權
grant select to dba_users to system;
grant select to dba_audit_trail dat to system;
----建立job(每個兩小時執行一次)
begin
sys.dbms_job.submit(job => :job,
what => 'begin CUX_USERLOCK_ALERT; end;',
next_date => to_date('09-06-2014 18:25:34', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'SYSDATE+2/24');
commit;
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-1178981/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記錄ORACLE使用者登入資訊Oracle
- oracle使用者鎖住、過期處理方式Oracle
- 登入過期--localStorage加sessionStorage實現7天登入過期Session
- Oracle10G審計失敗的使用者登陸Oracle
- oracle 使用者過期Oracle
- Oracle使用者密碼過期和使用者被鎖解決方法Oracle密碼
- Oracle使用者密碼過期和使用者被鎖解決方法【轉】Oracle密碼
- oracle審計簡單設定Oracle
- oracle 統計資訊過期判斷和自動收集Oracle
- 通過鎖定表的統計資訊來穩定sql的執行計劃SQL
- SecureCRT 通過Xmanager 開啟圖形介面(root使用者登入後,su登入oracle使用者)SecurecrtOracle
- 查詢使用者登入資訊sqlSQL
- redis儲存使用者登入資訊Redis
- dedecms網站連續登入失敗使用者鎖定怎麼辦?網站
- oracle 使用者登入相關Oracle
- Centos7密碼登入失敗鎖定設定CentOS密碼
- 檢視當前登入的使用者及其IP地址
- Oracle 密碼永不過期設定Oracle密碼
- Oracle的預設使用者及其建立指令碼[轉]Oracle指令碼
- Oracle使用審計監控使用者執行過的SQL語句OracleSQL
- 【TUNE_ORACLE】檢查統計資訊是否過期SQL參考OracleSQL
- ansible 統計 ssh 登入資訊
- Asp.Net MVC記住使用者登入資訊下次直接登入功能ASP.NETMVC
- .net讀取Windows登入使用者資訊(downmoon)Windows
- 如何把 Laravel 預設郵箱登入改成使用者名稱登入Laravel
- 【USER】Oracle 檢視使用者登入失敗次數及詳細資訊Oracle
- 【USER】oracle檢視使用者登入失敗次數及詳細資訊Oracle
- Oracle11g的使用者密碼預設為180天過期,更改為無期Oracle密碼
- 【Oracle】使用者密碼過期處理Oracle密碼
- Oracle 11g使用者口令過期Oracle
- 在沒有開啟審計的情況下定位Oracle錯誤的登入Oracle
- Oracle審計Oracle
- oracle 審計Oracle
- 資料庫使用者登入、切換以及解鎖資料庫
- 連續登入及其變種
- 設定允許root使用者登入SSH
- 設定Telnet root使用者的登入
- oracle使用者登入驗證總結Oracle