How to Log Users Login and Logout Details Through Oracle Forms

Log user‘s login and logout details in to table through Oracle Forms using POST-LOGON and PRE-LOGOUT triggers to track the user‘s login and logout activity for auditing purposes.

In this example one table and a sequence object is used to log the data in to table called login_out and the login information would be logged through Post-Logon trigger and logout information would be logged through Pre-Logout trigger in Oracle Forms. Follow the below mentioned steps to perform this task.

1. Create a Sequence object in Oracle Database.

CREATE SEQUENCE login_seq

START WITH 1

INCREMENT BY 1

NOCACHE
/

2. Create a Table in Oracle Database.

CREATE TABLE login_out

(

srlno     NUMBER (10) PRIMARY KEY,

loguser   VARCHAR2 (20 BYTE),

indate    DATE,

outdate   DATE

)
/

3. Create a Post-Logon Trigger at Form Level in Main Form of Your Application.

DECLARE

v_seq    NUMBER (10);

v_user   VARCHAR2 (20) := GET_APPLICATION_PROPERTY (username);

BEGIN

SELECT login_seq.NEXTVAL INTO v_seq FROM DUAL;

/* this global variable is created to use on pre-logout trigger to update the correspondent record. */

:Global.login_seq := v_seq;

INSERT INTO login_out (srlno, loguser, indate)

VALUES (v_seq, v_user, SYSDATE);

COMMIT;

EXCEPTION

WHEN OTHERS

THEN

RAISE form_trigger_failure;

END;

4. Create a Pre-Logout Trigger at Form Level in Main Form of Your Application.

DECLARE

v_seq    NUMBER (10) := :GLOBAL.login_seq;

BEGIN

Update login_out

set outdate = SYSDATE

where srlno = v_seq;

-- No need to commit here it will do automatically

EXCEPTION

WHEN OTHERS

THEN

RAISE form_trigger_failure;

END;

Now run the form and after that you can check the login_out table to view the data as following:

SELECT *

FROM login_out

WHERE TRUNC (indate) = TRUNC (SYSDATE)

/
Note: These triggers should added into Main Form only of your application, not in every form.

时间: 2024-10-12 06:11:14

How to Log Users Login and Logout Details Through Oracle Forms的相关文章

Login 和 Logout

inux下Login和Logout详解 Login 是你用Linux系统工作时面对的第一个进程,这对于使用终端以及通过网络使用Linux都是正确的.但是login进程本身并不是你在终端上见到的,你见到的其实是getty (get TeleTYpe terminal ,早期电脑上的意思是获取纸带终端,现在可以直接理解成打开终端),它是由init(通过/etc/inittab)在启动login进程时添加而启动的. 所以完整的启动链是:init -> getty -> login -> pas

Linux命令——login、logout、nologin

1.login 功能:使用login允许用户登录系统.如果没有指定参数,登录时提示输入用户名.如果该用户不是root,且如果/etc/nologin文件存在这个文件的内容被显示到屏幕上,登录被终止 命令语法:login [选项] [用户名] 选项含义: -h 使用其他服务器来传递远程主机的名称来登录,这样它可以被放置在utmp和wtmp中 -p 登录不破坏环境 -f 用来跳过第二次登录身份验证 2.logout 功能:退出登录shell 命令语法:logout 3.nologin 功能:限制某些

Audit login 与 Audit logout

对于SqlServer数据库,当有数据库连接建立时,会触发Audit login 事件:而当有某个数据库连接关闭时,将触发Audit logout 事件.  一.Audit logout 的Duration值 注意,在SQLSERVER的事件探查器中,我们通过观察可以发现,Audit login 和 匹配的Audit logout 事件使用的是同一个SPID,而且Audit logout 事件记录的StartTime正是Audit login事件产生的时间.有图为证: (大家请注意SPID为61

第十八章 并发登录人数控制——《跟我学Shiro》(http://blog.csdn.net/lhacker/article/details/19334305)

第十八章 并发登录人数控制——<跟我学Shiro> 博客分类: 跟我学Shiro 跟我学Shiro 目录贴:跟我学Shiro目录贴 在某些项目中可能会遇到如每个账户同时只能有一个人登录或几个人同时登录,如果同时有多人登录:要么不让后者登录:要么踢出前者登录(强制退出).比如spring security就直接提供了相应的功能:Shiro的话没有提供默认实现,不过可以很容易的在Shiro中加入这个功能. 示例代码基于<第十六章 综合实例>完成,通过Shiro Filter机制扩展Ki

There were X failed login attempts since the last successful login

如题,开始玩Linux的人,每次登陆的时候,肯定会遇到这个提示,好担心系统被人攻破,那怎么把这些试探的IP抓出来,并屏蔽呢,今天就记录一下我的做法,供大家参考 其实这个问题已经在系统级别支持解决,目前已有的解决办法如下: 1 使用 ssh-keygen,禁用密码登陆 2 使用PAM模块,参考HowTo: Configure Linux To Track and Log Failed Login Attempt Records,其实就是登陆尝试次数设置和延时 我的解决思路如下: 1 通过脚本获取尝

Oracle RAC 全局等待事件 gc current block busy 和 gc cr multi block request 说明--转载(http://blog.csdn.net/tianlesoftware/article/details/7777511)

一.RAC 全局等待事件说明 在RAC环境中,和全局调整缓存相关的最常见的等待事件是global cache cr request,global cache busy和equeue. 当一个进程访问需要一个或者多个块时,Oracle会首先检查自己的Cache是否存在该块,如果发现没有,就会先通过global cache赋予这些块共享访问的权限,然后再访问.假如,通过global cache发现这些块已经在另一个实例的Cache里面,那么这些块就会通过Cache Fusion,在节点之间直接传递,

linux log系统图

log系统图 先贴图,怎么样,效果还不错吧,根据个人理解画的,如果不行将就用着吧. 解说 syslog是一种机制,在wiki中说这种机制可以使用udp,tcp,unix socket等把日志记录在本地或者远程. liunx 有个很出名的syslog软件包,其中守护进程部分是sysklogd(我的机器--open suse 10.3--是没有的),它先起来,紧接着启动klogd,从内核或者/proc/kmsg中读取,记录在ring buffer中,等到用户态的守护进程syslogd起来后,就把当时

Oracle 联机重做日志文件(ONLINE LOG FILE)

--========================================= -- Oracle 联机重做日志文件(ONLINE LOG FILE) --========================================= 一.Oracle中的几类日志文件 Redo log files      -->联机重做日志 Archive log files   -->归档日志 Alert log files     -->告警日志 Trace files        

Oracle log files Troubleshooting Oracle

Oracle log files The following Oracle log files are helpful for resolving issues with Oracle components: Table: Log files for Oracle RAC 10g Release 2 Table: Log files for Oracle RAC 11g Release 2 and later versions Table: Log files for Oracle databa