原文出处:http://blog.sina.com.cn/s/blog_3f2ef11801000aad.html

Oracle9i Database 推出了一种称为细粒度审计 (FGA) 的新特性。现在下面就利用FGA实现审计对表的审计。其中,EDMS是数据库的一个测试帐户。

1. 建立测试表(用户EDMS下)

Create Table T_AUDIT_DEMO

(

CID INT NOT NULL,

CNAME VARCHAR2(20) NULL,

ENAME VARCHAR2(20) NULL,

CONSTRAINT PK_T_AUDIT_DEMO PRIMARY KEY (CID)

);

2. 创建审计策略(用户SYS下)

begindbms_fga.add_policy

(

object_schema=>'EDMS',

object_name=>'T_AUDIT_DEMO',

policy_name=>'T_AUDIT_DEMO_AUDIT');

end;

3. 测试审计效果(用户EDMS下)

INSERT INTO T_AUDIT_DEMO VALUES(1,'曾勋','ZENG XUN');

INSERT INTO T_AUDIT_DEMO VALUES(2,'翁黎明','WENG LI MING');

INSERT INTO T_AUDIT_DEMO VALUES(3,'刘帝勇','LIU DI YONG');

4. 使用Select查询测试表(用户EDMS下)

SQL> SELECT * FROM T_AUDIT_DEMO;

CID CNAMEENAME

----- -------------------- -------

1曾勋ZENG XUN

2翁黎明WENG LI MING

3刘帝勇LIU DI YONG

5. 再次查看审计效果(用户SYS下)

SQL> select statement_type,SQL_TEXT from dba_fga_audit_trail;

STATEMENT_TYPE SQL_TEXT

-------------- -----------

SELECTSELECT * FROM T_AUDIT_DEMO

注意:之前的Insert语句并不在审计中。默认的只对Select进行审计。在Oracle 9i中它只捕获 SELECT 语句。而在Oracle 10i中进行了扩展,支持对所有类型的DML进行审计。

6. 修改审计粒度(用户SYS下)

begindbms_fga.add_policy

(

object_schema=>'EDMS',

object_name=>'T_AUDIT_DEMO',

policy_name=>'T_AUDIT_DEMO_AUDIT',

statement_types=>'INSERT, UPDATE, DELETE, SELECT');

end;

注意:不能实现对Truncat Table的审计。

7. 测试审计(用户EDMS、SYS下)

INSERT INTO T_AUDIT_DEMO VALUES(4,'黄智洪','HUANG ZHI HONG');

DELETE FROM T_AUDIT_DEMO WHERE CID < 4;

SQL> select statement_type,SQL_TEXT from dba_fga_audit_trail;

STATEMENT_TYPE SQL_TEXT

-------------- --------------------

SELECTSELECT * FROM T_AUDIT_DEMO

INSERTINSERT INTO T_AUDIT_DEMO VALUES(4,'黄智洪','HUANG ZHI HONG')DELETEDELETE FROM T_AUDIT_DEMO WHERE CID < 4

SELECTSELECT * FROM T_AUDIT_DEMO

至此,我们已经实现了对表T_AUDIT_DEMO的审计。与FGA相关的表或者视图:

select* from fga$

select* from fga_log$

select* from fgacol$

select * from dba_fga_audit_trail

select * from dba_common_audit_trail

select * from dba_audit_policies

select * from dba_fga_audit_trail

与FGA相关的包或者过程:

dbms_fga.add_policy

dbms_fga.drop_policy

至于这些表、视图、包的列或者参数的使用方法,可以Describe或者查看相关文档。

fga 例子 oracle,利用Oracle FGA实现审计相关推荐

  1. 有效利用Oracle官方的免费学习资源

    概述 OTN 在线产品文档用户手册 例应用实践1In-memory学习 例应用实践2动态视图定义 常用文档列表和简单介绍 白皮书White Paper 例应用实践1In-memory学习 白皮书的列表 ...

  2. 利用Oracle内置分析函数进行高效统计汇总

    利用Oracle内置分析函数进行高效统计汇总 分析函数是Oracle从8.1.6开始引入的一个新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者 ...

  3. iBatis入门例子,用ORACLE和Java测试

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats; impor ...

  4. 利用Oracle分析函数实现多行数据合并为一行

    demo场景,以oracle自带库中的表emp为例: select ename,deptno from emp order by deptno; ENAME DEPTNO CLARK 10 KING ...

  5. oracle存储过程备份,利用ORACLE存储过程与JOB结合实现对数据表自动备份

    烈火网(LieHuo.Net)教程 利用ORACLE存储过程与JOB结合实现对数据表自动备份. 1.创建存储过程 create or replace procedure data_auto_backu ...

  6. 利用oracle执行系统命令,利用oracle存储过程执行操作系统命令(转)

    以下方法在WINNT,LINUX下的oracle9i上测试通过,java过程调用系统命令 首先给使用java存储过程的用户授予一定的权限 <>表示所有文件,也可以单独指定文件. r w e ...

  7. jsp oracle连接池,利用Oracle自带的连接池类的一例

    利用Oracle自带的连接池类的一例 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 /** 封装了对数据库的连接,用于处理SQL语句. @author:ya ...

  8. DOTNET零碎要点---1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库

    1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库 DOTNET学习笔记---1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库 2 ...

  9. oracle 抽样_利用ORACLE实现数据抽样

    做数据分析的,免不了碰到记录数据量很大,怎么办? 做全面分析是不现实也没有必要. 介绍一下抽样方法及实现 几种常用的抽样方法: 1.简单随机抽样(simple random sampling) 将所有 ...

最新文章

  1. substr(IndexAction,1,-6)
  2. Java开发人员应了解的JVM流行语
  3. canal mysql从库_大厂如何基于binlog解决多机房同步mysql数据(一)?
  4. MongoDB副本集、分片集的伪分布式部署(保姆级教程)
  5. 慎用ArrayList的contains方法,使用HashSet的contains方法代替
  6. BlenderPython (三)bpy模块
  7. 将多张图片缩小合为一张图片(千图成像)
  8. AutoCAD2011,2020安装教程
  9. 2022IEOC全国赛专业组获奖及晋级成绩公布 全球赛期待继续辉煌
  10. php模拟登陆青果教务系统
  11. PDF各种格式相互转换
  12. excel文件无法打印提示内存不足_Mac应用程序无法打开提示不明开发者或文件损坏的处理方法...
  13. git commit规范 、CHANGELOG生成 和版本发布的标准自动化
  14. 有五个人坐一起,问第五个多少岁?(java)
  15. 大学物理·第7章恒定磁场
  16. docker pull提示x509错误的对应方法
  17. 土木工程跨计算机专业考研,2019土木工程跨考西工大网安考研经验分享
  18. 运维批量管理工具-clustershell
  19. 中国移动“良心”了,18元保号套餐,或许能完美替代达量不限速
  20. 阿里云 SAE 携手云效助力「石家庄掌讯」持续交付、降本提效

热门文章

  1. Java程序员需要掌握的计算机底层知识(五):内核同步方法
  2. 【JavaScript】请求数据时,添加时间戳,避免浏览器缓存
  3. C# 学生成绩管理系统 完整版
  4. C# 房贷计算器(等本降息)
  5. 牛客网_PAT乙级_1010月饼 (25)
  6. javascript中的内存管理
  7. SpringBoot中的响应式web应用
  8. Java float类型怎么把小数位数限制为2位
  9. 【dijkstra模板】旅游规划 (25 分)
  10. 1011 World Cup Betting (20 分)_14行代码AC