Oracle用户登录信息的统计

原创 2013年12月04日 15:58:52

Oracle用户登录信息的统计

1.创建存储Oracle用户登录信息的表:

create table stats$user_log
(
  user_id         VARCHAR2(30),
  session_id      NUMBER(10),
  host_name       VARCHAR2(30),
   last_module     VARCHAR2(30),
  logon_day       DATE,
  logon_time      VARCHAR2(15),
  logoff_day      DATE,
  logoff_time     VARCHAR2(10),
  elapsed_minutes NUMBER(10)
)

 

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

create or replace trigger logon_trigger
after logon on database
begin
  insert into stats$user_log
  values(user,
  sys_context('userenv','sessionid'),
  sys_context('userenv','host'),
  null,
  sysdate,
  to_char(sysdate,'hh24:mi:ss'),
  null,
  null,
  null
  );
  end;

 

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

create or replace trigger logoff_trigger
  before logoff on database
begin
 update stats$user_log
     set last_module =
         (select module
            from v$session
           where sys_context('USERENV', 'SESSIONID') = audsid)
   where sys_context('USERENV', 'SESSIONID') = session_id;

  update stats$user_log
     set logoff_day = sysdate
   where sys_context('USERENV', 'SESSIONID') = session_id;

  update stats$user_log
     set logoff_time = to_char(sysdate, 'hh24:mi:ss')
   where sys_context('USERENV', 'SESSIONID') = session_id;

  update stats$user_log
     set elapsed_minutes = round((logoff_day - logon_day) * 1440)
   where sys_context('USERENV', 'SESSIONID') = session_id;
end;

 


4.查看用户登入登出信息:

 

 

 

 

 

相关文章推荐

记录oracle用户的登录信息

为了统计哪些用户在登录使用数据库,以及其他用途,需要记录登录数据库的信息,以及尝试登录数据库失败的信息,以下几个trigger可以搞定。 创建记录用户信息的table CREATE TABLE o...

oracle查询用户信息

  • 2014年08月19日 15:48
  • 3KB
  • 下载

查看Oracle当前用户下的信息

0、表空间   SQL>select username,default_tablespace from user_users;   查看当前用户的角色   SQL>select * from u...
  • luolunz
  • luolunz
  • 2012年04月21日 21:02
  • 542

查询Oracle数据库用户表信息

 下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对oracle查询方面感兴趣的话,不妨一看。 select * from all_tab_comments -- 查询所有用户的...

如何查询Oracle中所有用户信息

1.查看所有用户:   select * from dba_users;     select * from all_users;     ...

(转)如何查询Oracle中所有用户信息

转自:http://www.2cto.com/database/201311/255101.html1.查看所有用户:select * from dba_users; select * from ...

Oracle 查看用户表和表字段信息

1.查看用户所建的表(表名和注释)--查看表名称 select * from user_tab_comments where table_name like 'TB_%';  如果如下: ...
  • lqh4188
  • lqh4188
  • 2011年11月29日 19:01
  • 852

oracle查看当前用户信息

一、查看当前用户信息: 1、查看当前用户拥有的角色权限信息:select * from role_sys_privs; 2、查看当前用户的详细信息:select * from user_users...

Oracle管理中常用的SQL语句——用户信息

Oracle管理中常用的SQL语句。 01.用户信息 02.确认用户角色 03.确认用户的系统权限 04.确认用户的对象权限 用户信息 DBA_USERS表中的主要列如下...

Oracle当前用户常用的查看信息

查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件)  (2011-07-05 23:02:32) 转载▼ 标签:  杂谈...
  • lqb2011
  • lqb2011
  • 2014年10月07日 14:46
  • 182
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle用户登录信息的统计
举报原因:
原因补充:

(最多只允许输入30个字)