zoukankan      html  css  js  c++  java
  • Oracle--创建TRIGGER实现跟踪用户登录信息

    ---创建日志表记录用户登录信息
    create  table user_log
    (
      user_id         VARCHAR2(30),
      session_id      NUMBER(10),
      host_name       VARCHAR2(30),
      last_module     VARCHAR2(30),
      logon_day       DATE,
      logoff_day      DATE,
      elapsed_minutes NUMBER(10)
    );

    --创建用户登录之后的触发器统计用户登陆时的信息:

    create or replace  trigger logon_trigger
    after logon on database
    begin
      insert into user_log
      values(
      user,
      sys_context('userenv','sessionid'),
      sys_context('userenv','host'),
      null,
      sysdate,
      null,
      null
      );
      end;

    select * from user_log;
     

    --创建用户登出之前的触发器统计用户登出时的信息:

    create or replace  trigger logoff_trigger
      before logoff on database
    begin
     update user_log
         set last_module =
             (select module
                from v$session
               where sys_context('USERENV', 'SESSIONID') = audsid)
       where sys_context('USERENV', 'SESSIONID') = session_id;
      update user_log
         set logoff_day = sysdate
       where sys_context('USERENV', 'SESSIONID') = session_id;
      update user_log
         set elapsed_minutes = round((logoff_day - logon_day) * 1440)
       where sys_context('USERENV', 'SESSIONID') = session_id;
    end;

  • 相关阅读:
    (转)分析索引快速获取索引信息
    ORA-16014报错解决
    (转)关于索引的一点知识
    (转)CentOS搭建Nagios监控
    (转)Autotrace工具使用——小工具,大用场
    Using ROWNUM in Oracle
    oracle回收站
    DBA 思想天空笔记
    Oracle trunc函数
    MVC5中使用SignalR2.0实现实时聊天室
  • 原文地址:https://www.cnblogs.com/guipeng/p/6508777.html
Copyright © 2011-2022 走看看