Oracle登陸觸發器

梓沐發表於2015-12-23
1. 在sys模式下建立一個表,用於記錄客戶端登入資料庫伺服器的詳細資訊

```
create table logon_logs (logon_time date,
username varchar2(30),
machine varchar2(64),
ipadr varchar2(30),
program varchar2(64),
module varchar2(64),
terminal varchar2(64)
)
```

2.在sys模式下建立一個觸發器:

```
create or replace trigger logusersconnects
after logon on database        
begin
insert into logon_logs values(sysdate,
user,sys_context('USERENV','HOST'),
sys_context('USERENV','IP_ADDRESS'),
sys_context('USERENV','ACTION'),
sys_context('USERENV','MODULE'),
sys_context('USERENV','TERMINAL'));
commit;
end;
/
```

3. 一些檢視session數的例項(以sys使用者登入)
--檢視login_history表

```
select * from logon_logs;
```

--檢視當前的所有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;
```



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29812844/viewspace-1878478/,如需轉載,請註明出處,否則將追究法律責任。

相關文章