WEB开发网
开发学院数据库Oracle Oracle中通过触发器追踪用户活动 阅读

Oracle中通过触发器追踪用户活动

 2007-05-05 12:03:30 来源:WEB开发网   
核心提示:从Oracle8i开始,Oracle引入了特殊的触发器,Oracle中通过触发器追踪用户活动,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,现在,我们将获得仅仅优先于用户注销的信息,INSERT,UPDATE和DELETE),这些系统级别的触发器包括数据库启动触发器

从Oracle8i开始,Oracle引入了特殊的触发器,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,INSERT,UPDATE和DELETE)。这些系统级别的触发器包括数据库启动触发器,DDL触发器和最终用户登陆/注销触发器。

当Oracle提供了这些新的触发器的功能后,却还不清楚该如何使用这些触发器来追踪系统的使用情况。这篇文章描述了我是如何使用创建终端用户登陆/注销的方法来追踪终端用户的活动的。刚开始实行的追踪终端用户系统级触发器是非常新的,就因为它非常的新,所以它在功能上还是不够完善。

虽然用户登陆/注销触发器会告诉你用户登陆和用户注销的准确时间,可是代码却无法获取在用户会话阶段所进行活动的任何信息。

这些用户的登陆/注销触发器对于使用时间戳用户的应用程序而言是非常有用的。所谓的时间戳用户,就是那些在访问应用程序的时候被给定一个唯一的Oracle用户ID的人。不使用时间戳Oracle用户ID的应用程序使用这些登陆/注销触发器可能没有什么用。

既然我们知道了基本的知识,那么,让我们看看该如何设计用户审计表来追踪用户的活动。

设计一个用户审计表

第一步就是创建一个用于存储终端用户登陆/注销触发器信息的Oracle表。为了合理地设计这些触发器,让我们先来看看系统级的触发器。首先,我们在登陆的时候就会获取以下信息:

用户 ID—用户的ID ,用于执行登陆操作;

会话 ID—Oracle为用户控制会话的ID;

主机—计算机的名称;

登陆时间—一个用户登陆时间一样的Oracle时间数据类型,精确到0.001秒。

现在,我们将获得仅仅优先于用户注销的信息。当用户在注销的时候,Oracle系统级触发器就可以提供这个用户当前的会话状态和活动信息:

1 2 3 4  下一页

Tags:Oracle 通过 触发器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接