数据库安全审计

用以下的方式可以监控登入登出的用户:
创建如下的两张表:

create table login_log -- 登入登出信息表
(
session_id int not null, -- sessionid
login_on_time date, -- 登入进间 
login_off_time date, -- 登出时间 
user_in_db varchar2(30), -- 登入的db user
machine varchar2(20), -- 机器名
ip_address varchar2(20), -- ip地址
run_program varchar2(20) -- 以何程序登入
);

create table allow_user -- 网域用户表 ( ip_address varchar2(20), -- ip地址 login_user_name nvarchar2(20) -- 操作者姓名 );

创建如下的两个触发器:

create or replace trigger login_on_info -- 记录登入信息的触发器
after logon on database 
Begin 
insert into login_log(session_id,login_on_time,login_off_time,user_in_db,machine,ip_address,run_program)
select AUDSID,sysdate,null,sys.login_user,machine,SYS_CONTEXT('USERENV','IP_ADDRESS'),program
from v$session where AUDSID = USERENV('SESSIONID'); --当前SESSION
END;

create or replace trigger login_off_info --记录登出信息的触发器 before logoff on database Begin update login_log set login_off_time = sysdate where session_id = USERENV('SESSIONID'); --当前SESSION exception when others then null; END;

方法二: 用如下的方式可以审记执行drop动作的事件: /** * drop语句的审计日志表 */ create table drop_log ( session_id int not null, -- sessionid drop_time date, -- drop的时间 ip_address varchar2(20), -- ip地址 object_owner varchar2(30), -- 对象的所有者 object_name varchar2(30), -- 对象名称 object_type varchar2(20), -- 对象类型 drop_by_user varchar2(30) -- 执行drop语句的用户 );

create or replace trigger drop_info after drop on mfg0513user.schema -- 在mfg0513user用户上创建审记DROP的触发器 begin insert into drop_log (session_id, drop_time, ip_address, object_owner, object_name, object_type, drop_by_user) values(USERENV('SESSIONID'), sysdate, SYS_CONTEXT('USERENV','IP_ADDRESS'), sys.dictionary_obj_owner, sys.dictionary_obj_name, sys.dictionary_obj_type, sys.login_user); end;  



原文:www.hh010.com/database/html/33-3/3020.htm

你可能感兴趣的:(数据库安全审计)