我现在进行数据库审计的研究;
主要目的是纪录用户对一些关键表的操作,并能确定用户来源。主要通过oracle自带的审计功能和triggle结合实现。由于水平有限,在试验过程中总是不能在数据库审计表中获得用户实际的IP地址,只能获得数据库用户登陆时的机器名称,这样实际上就不能在广域网上定位用户的来源。
现在计划采用一种间接的方法可以得到用户的IP。通过分析Listener,可以定位用户的IP地址和用户使用的终端。当用户连接到Oracle数据库的时候,都是要通过数据库的Listener,而后连接到DBMS中的,而数据库Listener的日志中记录了用户连接的时间、用户IP地址、用户连接方式(采用什么样的客户端进行数据库连接的)、用户连接过程中使用的机器名称等信息。大家有没有什么别的办法能直接获取用户IP.
主要目的是纪录用户对一些关键表的操作,并能确定用户来源。主要通过oracle自带的审计功能和triggle结合实现。由于水平有限,在试验过程中总是不能在数据库审计表中获得用户实际的IP地址,只能获得数据库用户登陆时的机器名称,这样实际上就不能在广域网上定位用户的来源。
现在计划采用一种间接的方法可以得到用户的IP。通过分析Listener,可以定位用户的IP地址和用户使用的终端。当用户连接到Oracle数据库的时候,都是要通过数据库的Listener,而后连接到DBMS中的,而数据库Listener的日志中记录了用户连接的时间、用户IP地址、用户连接方式(采用什么样的客户端进行数据库连接的)、用户连接过程中使用的机器名称等信息。大家有没有什么别的办法能直接获取用户IP.
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;是的,楼上所讲正是.