oracle 审计用户连接

为防止恶意用户对系统进行攻击,我们可以监控系统的连接情况。与此同时结合定期检查和分析,便可以迅速的发现那些异常和非法的数据库连接。

实现对Oracle系统登录审计的方法不是唯一的,这里给出使用触发器记录用户登录信息。希望能起到抛砖引玉的目的。

1.创建记录审计信息的表
conn sec/sec
create table audit_user_connect
(
   user_id           varchar2 (32),
   session_id        number (8),
   host              varchar2 (32),
   connection_ip     varchar2 (32),
   logon_day         date,
   logon_time        varchar2 (10)
);

2.创建审计连接信息的触发器
create or replace trigger user_connect_audit_trigger
   after logon
   on database
declare
   v_connection_ip varchar2 (20);
   v_host  varchar2 (20);
begin
   select sys_context ('userenv', 'ip_address') into v_connection_ip from dual;
   select sys_context ('userenv', 'host') into v_host from dual;
   insert into audit_user_connect
     values   (user,
               sys_context ('userenv', 'sessionid'),
               v_host,
               v_connection_ip,
               sysdate,
               to_char (sysdate, 'hh24:mi:ss'));
   commit;
end;
/

4.注意事项
因为是使用触发器实现的审计,因此如果trigger本身出现问题的话,会导致用户无法访问。因此在使用该方法进行审计时,一定要确保trigger的有效性和可用性。
具体的报错信息如下:
sys@ora10g> conn sec/sec
ERROR:
ORA-04098: trigger 'SEC.USER_DISCONNECT_AUDIT_TRIGGER' is invalid and failed re-validation


ERROR:
ORA-24315: illegal attribute type


Warning: You are no longer connected to ORACLE.

5.小结
本文给出的是通过触发器实现用户登录审计的需求。可以在此基础上进行丰富和定制来满足具体的审计需求。
欢迎大家提出自己的宝贵意见。



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值