利用觸發器實作檢視所有用戶端IP的方法
收集了網上的一些做法,做個總結,友善以後用,其操作步驟:
1 在sys模式下建立一個表,用于記錄用戶端登入資料庫伺服器的詳細資訊。
create table login_history
(
username varchar2(60), --使用者名
machine varchar2(60), --機器名
login_time date, --登入時間
ip varchar2(50) --ip位址
);
2 在sys模式下建立一個觸發器
create or replace trigger login_log
after logon on database
begin
insert into login_history
select username, machine, sysdate, sys_context('userenv', 'ip_address')
from v$session
where audsid = userenv('sessionid');
commit;
end;
3 一些檢視session數的執行個體(以sys使用者登入)
檢視login_history表
select * from login_history;
檢視目前的所有session數
select count(*) from v$session;
檢視目前的用戶端計算機名為RHEL的所有session數
select count(*) from v$session where machine = 'RHEL';
檢視目前的各個用戶端計算機的連接配接數
select count(*) , machine from v$session group by machine;