oracle客户事件触发器

本文介绍了客户事件触发器的概念及应用场景,包括与客户登录、DDL和DCL相关的事件触发器。详细解释了如何创建登录触发器来记录用户登录信息,并通过实例展示了如何建立DDL触发器以跟踪特定模式上的DDL事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户事件触发器是指基于客户事件所建立的触发器,客户事件是指与客户登陆、用户注销、DDL以及DCL相关的事件,如下所示。
? BEFORE ALTER|AFTER ALTER:该类事件由ALTER语句触发。
? BEFORE DROP|AFTER DROP:该类事件由DROP语句触发。
? BEFORE ANALYZE|AFTER ANALYZE:该类事件由ANALYZE语句触发。
? BEFORE ASSOCIATE STATISTICS|ALTER ASSOCIATE STATISTICS:该类事件由统计关联语句触发。
? BEFORE AUDIT|AFTER AUDIT:该类事件由AUDIT语句触发。
? BEFORE NOAUDIT|AFTER NOAUDIT:该类事件由NOAUDIT语句触发。
? BEFORE COMMENT|AFTER COMMENT:该类事件由COMMENT语句触发。
? BEGORE CREATE|AFTER CREATE:该类事件由CREATE语句触发。
? BEFORE DDL|BEFORE DDL:该类事件由各种DDL语句触发。
? BEFORE DISASSOCIATE STATISTICS|AFTER DISASSOCIATE STATISTICS:该类事件由统计无关语句触发。
? BEFORE GRANT|AFTER GRANT:该类事件由GRANT语句触发。
? BEFORE LOGOFF:该类事件在注销会话之前触发。
? BEFORE LOGON:该类事件在登录成功之后触发。
? BEFORE RENAME|AFTER RENAME:该类事件由RENAME语句触发。
? BEFORE REVOKE|AFTER REVOKE:该类事件由REVOKE语句触发。
? AFTER SUSPEND:该事件在暂停SQL语句时触发。
? BEFORE TRUNCATE|AFTER TRUNCATE:该类事件由TRUNCATE语句触发。
客户事件触发器只能由SYS用户建立,下面以建立登录触发器和DDL触发器为例。说明使用客户事件触发器的方法。
1.建立登录发器
为了记载用户登录事件,可以建立登录触发器。下面以审计登录用户的名称、登录时间和客户端IP地址为例。说明使用登录触发器的方法。在建立登录触发器之前首先建立审计表AUD_LOGON_TAB。
conn sys/oracle as sysdate
create table aud_logon_tab(
username varchar2(20),time date,addr varchar2(20));
create or replace trigger tr_logon
after logon on database
begin
insert into aud_logon_tab
values(ora_login_user,sysdate,ora_client_ip_address);
end;
/
conn scott/tiger@test
select * from sys.aud_logon_tab;
2.建立DDL触发器
为了记录系统所发生的DDL事件,可以建立DDL触发器。下面以审计在SCOTT方案上的DDL事件为例,说明使用DDL触发器的方法。在建立DDL触发器之前首先建立审计表AUD_DDL_TAB。
conn sys/oracle as sysdate
create table aud_ddl_tab(
event varchar2(20),username varchar2(10),owner varchar(10),
objname varchar2(20),objtype varchar2(10),time date);
create or replace trigger tr_ddl
fter ddl on scott.schema
begin
insert into aud_ddl_tab values(
ors_sysevent,ora_login_user,ora_dict_obj_owner,
ora_dict_obj_name,ora_dict_obj_type,sysdate);
end;
/
conn scott/tiger@test
create table temp(cola int);
drop table temp;
select username,event,objtype,objname from sys.aud_ddl_tab;

关键字:事件触发器 BEFORE ALTER|AFTER ALTER
BEFORE TRUNCATE|AFTER TRUNCATE
AFTER SUSPEND
BEFORE REVOKE|AFTER REVOKE
BEFORE RENAME|AFTER RENAME
BEFORE GRANT|AFTER GRANT

本文转自
http://www.bugcode.com/diary/21485
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值