说到触发器,它其实就是一种特殊的存储过程,存储过程是需要我们人为的执行,而触发器是通过一个“触发事件”来执行的,这个触发事件可以是行级触发事件、语句级触发事件、替换触发事件或者用户触发事件。
而这里我要讨论的是用户事件触发,顾名思义用户事件触发就是指当用户执行了DDL操作或者用户登录、登出操作时记录下这一行为。常见的用户触发事件操作包括:create、alter、drop、truncate、comment、rename、analyze、grant、revoke、logon、logoff
第一步:
创建一个DDL操作日志表,它包括操作对象名称、对象类型、操作行为、操作用户、操作时间。
create table DDL_LOG(
db_obj_name varchar(20),
db_obj_type varchar(20),
oper_action varchar(20),
oper_user varchar(20),
oper_date date
);
COMMENT ON TABLE DDL_LOG IS 'DDL语句操作记录表';
COMMENT ON COLUMN DDL_LOG.db_obj_name is '数据对象名称';
COMMENT ON COLUMN DDL_LOG.db_obj_type is '对象类型';
COMMENT ON COLUMN DDL_LOG.oper_action is '具体操作sql';
COMMENT ON COLUMN DDL_LOG.oper_user is '操作用户';
COMMENT ON COLUMN DDL_LOG.oper_date is '操作时间';
第二步:
创建一个关于XXX用户的DDL操作的触发器。