我是靠谱客的博主 孝顺胡萝卜,最近开发中收集的这篇文章主要介绍logon,logoff on database trigger在审计中应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近的一个项目业务比较BT,业务用户一大堆,开发用户也一大堆,为了对这些用户进行审计,开始考虑FGA做,但是看了FGA后,只能针对特定的表进行审计,而不能对于具体的用户进行审计,没办法,只能用TRIGGER做简单的用户行为审计,再配合LOGMNR.

相关脚本如下:

CREATE TABLE LOGON_AUDIT
(
  LOGON_DATE           DATE                     DEFAULT SYSDATE,
  MACHINE              VARCHAR2(256),
  SESSIONID            VARCHAR2(256),
  INSTANCE             VARCHAR2(256),
  DB_USER              VARCHAR2(256),
  DB_NAME              VARCHAR2(256),
  OS_USER              VARCHAR2(256),
  IP_ADDRESS           VARCHAR2(256),
  AUTHENTICATION_TYPE  VARCHAR2(256),
  PROGRAM              VARCHAR2(100),
  TYPE                 NUMBER(2)               --1代表登陆,0代表退出
)
TABLESPACE GAME;

 

CREATE OR REPLACE TRIGGER logon_audit_trig
AFTER LOGON ON DATABASE
DECLARE
V_PROGRAM VARCHAR2(100);
V_SESSIONID NUMBER(20);
V_USERNAME VARCHAR2(20);
BEGIN
SELECT PROGRAM,SID,USERNAME INTO V_PROGRAM,V_SESSIONID,V_USERNAME
FROM V$SESSION
WHERE AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID')
AND rownum<2;


IF USER IN ('具体用户') THEN
      INSERT INTO logon_audit
(MACHINE, SESSIONID, INSTANCE, DB_USER, DB_NAME, OS_USER, IP_ADDRESS, AUTHENTICATION_TYPE,PROGRAM,type)
 VALUES
(SYS_CONTEXT('USERENV','TERMINAL'),
V_SESSIONID,
SYS_CONTEXT('USERENV','INSTANCE'),
V_USERNAME,
SYS_CONTEXT('USERENV','DB_NAME'),
SYS_CONTEXT('USERENV','OS_USER'),
SYS_CONTEXT('USERENV','IP_ADDRESS'),
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE'),
V_PROGRAM,1);

END IF;

END;
/


CREATE OR REPLACE TRIGGER logoff_audit_trig
BEFORE LOGOFF ON DATABASE
DECLARE
V_PROGRAM VARCHAR2(100);
V_SESSIONID NUMBER(20);
V_USERNAME VARCHAR2(20);
BEGIN
SELECT PROGRAM,SID,USERNAME INTO V_PROGRAM,V_SESSIONID,V_USERNAME
FROM V$SESSION
WHERE AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID')
AND rownum<2;


IF USER IN ('具体用户') THEN
      INSERT INTO logon_audit
(MACHINE, SESSIONID, INSTANCE, DB_USER, DB_NAME, OS_USER, IP_ADDRESS, AUTHENTICATION_TYPE,PROGRAM,type)
 VALUES
(SYS_CONTEXT('USERENV','TERMINAL'),
V_SESSIONID,
SYS_CONTEXT('USERENV','INSTANCE'),
V_USERNAME,
SYS_CONTEXT('USERENV','DB_NAME'),
SYS_CONTEXT('USERENV','OS_USER'),
SYS_CONTEXT('USERENV','IP_ADDRESS'),
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE'),
V_PROGRAM,0);

END IF;

END;

/

 

BTW,在研究FGA的时候,发现FGA还是挺强大的,除了进行粒度审计,估计以后在进行数据同步,复制,迁移的时候能用上.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28419/viewspace-622584/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28419/viewspace-622584/

最后

以上就是孝顺胡萝卜为你收集整理的logon,logoff on database trigger在审计中应用的全部内容,希望文章能够帮你解决logon,logoff on database trigger在审计中应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部