系统事件是指基于oracle事件(例如logon、logoff和startup、shutdown)所建立的触发器,通过使用系统事件触发器,提供了跟踪系统或是数据库变化机制。下面介绍使用的系统事件属性函数,和建立各种事件触发器的方法在建立系统事件触发器时,我们需要使用事件属性函数,常用的事件属性函数如下:
ora_client_ip_addrewss //返回客户端的IP
ora_database_name //返回数据库名
ora_login_user //返回登录用户名
ora_sysevent //返回触发触发器的系统事件名
ora_des_encrypted_password //返回用户的是(MD5)加密后的密码
n 建立登陆和退出触发器
为了记录用户的登陆和退出世界,我们可以建立登陆和退出触发器;为了记录用户名称、时间、IP地址,我们首先建立一张信息表:
SQL> conn system/system as sysdba;
SQL> create table log_table(username varchar2(20),logon_time date,logoff_time date,address varchar2(20));
我们一起来完成登陆(logon)和退出(logoff)触发器,看看如何编写?
|
create or replace trigger tri7
after logon on database
begin
insert into log_table(username,logon_time,address)
values(ora_login_user,sysdate,ora_client_ip_address);
end;
create or replace trigger tri8
before logoff on database
begin
insert into log_table(username,logoff_time,address)
values(ora_login_user,sysdate,ora_client_ip_address);
end;