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/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值