oralce系统触发器

系统事件是指基于oracle事件(例如logon、logoff和startup、shutdown)所建立的触发器,通过使用系统事件触发器,提供了跟踪系统或是数据库变化机制。下面介绍使用的系统事件属性函数,和建立各种事件触发器的方法在建立系统事件触发器时,我们需要使用事件属性函数,常用的事件属性函数如下:

ora_client_ip_addrewss   //返回客户端的IP

ora_database_name      //返回数据库名

ora_login_user           //返回登录用户名

ora_sysevent            //返回触发触发器的系统事件名

ora_des_encrypted_password  //返回用户的是(MD5)加密后的密码

建立登陆和退出触发器

为了记录用户的登陆和退出世界,我们可以建立登陆和退出触发器;为了记录用户名称、时间、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触发器名

after[before] lgoon[logoff]  on  dateabse

begin

//执行语句

end;

 

 

 

 

 

 

 

 

 

 

 

 

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;

 

原文地址:https://www.cnblogs.com/fanweisheng/p/11115653.html