oracle 10g如何实现高级查询(oracleawr报告怎么设置)

技术Oracle中FGA功能怎么用这篇文章主要为大家展示了“Oracle中FGA功能怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle中FGA功能怎么用”这篇文

本文主要展示“如何在Oracle中使用FGA函数”,简单易懂,组织清晰,希望能帮你解惑。让边肖带领大家学习《如何在甲骨文中使用FGA函数》一文。

你可能对trigger很熟悉,但是Oracle也有一个叫FGA的功能,和trigger类似,但是功能更强大。它的全称是细粒度审计。是一种特殊的审计方式。使用FGA只需要调用甲骨文的包DBMS_FGA。ADD_POLICY创建一些策略(审计策略)。每个策略只能针对一个表或视图。在建立策略后,可以记录表或视图上的所有DML操作(选择、插入、更新、删除),当然,可以添加一些过滤条件来监控一些特殊操作。

补充:所谓审核就是记录你的任意操作。如果你的操作(执行DML语句)满足指定条件,你执行的sql语句会被记录在sys user下的一些表中,还有你的其他信息,比如执行时间、用户名、你使用的工具、机器名称等。

FGA存在于oracle 9i中,但只有选择的报表可以在9i中审计。所有DML操作只能从10g开始审核。

1.FGA软件包的使用。ADD_POLICY

创建审计策略的语法

FGA数据库管理系统。ADD_POLICY(

Object_schema VARCHAR2,- schema模式的名称,表或视图的所有者

Object_name VARCHAR2,-对象的名称,表或视图的名称

Policy _ namevarchar2,-审核策略的名称,与数据库中的其他对象一样,它需要具有唯一的名称。

Audit_condition VARCHAR2,-过滤标准,例如可以选择记录哪些合格的操作。

Audit _ ColumnVarchar2,-表中的一列,只能记录对表中一列的操作。如果未指定,将审核所有列。

下面的Handler_schema VARCHAR2,handler _ module的所有者只能是创建策略的用户,而上面的object_schema可以是任何用户。

Handler _ module varchar2,-可以是存储过程或函数,但它将在检测到任何合格操作时执行。

Enable BOOLEAN,- true或false表示策略打开或关闭,false表示不进行审核。

Statement_types VARCHAR2,-指示将审核哪些操作,您可以填写select、insert、update和delete中的一个或多个。

Audit _ trail binary _ integer默认情况下,-有一个参数db,xml表示被审计的信息以XML文件的形式保存到数据库或者保存到磁盘。

audit _ column _ opts BInary _ INTEGER IN DEFAULT);-事实上,此选项仅在audt_column中指定了列时有效。它有两个选项,any_columns和all_columns。如果表中有eno、eno和ename列,并且这两列是在audit_column中指定的,那么选择any _ columns意味着对任何列的任何操作都将被记录,而在这里指定all _ columns意味着只有一条sql语句同时操作这两列。

例如,假设您创建了表:创建表温度(埃纳姆瓦尔恰尔2(30));为此表创建策略

每个策略只能针对一个表或视图,一个表或视图可能对应多个策略。删除表时,默认情况下会删除策略

开始

系统。FGA数据库管理系统。ADD_POLICY(

object_schema='ARWEN '

,对象名='TEMP '

,策略名称

 => 'FGA_TEMP'
   ,audit_condition       => NULL
   ,audit_column          => eno,ename
   ,handler_schema        => null
   ,handler_module        => null
   ,enable                => TRUE
   ,statement_types       =>'SELECT,INSERT,UPDATE,DELETE'
   ,audit_trail           => SYS.DBMS_FGA.DB+SYS.DBMS_FGA.EXTENDED
     --DBMS_FGA.DB表示记录将被保存到数据库中,DBMS_FGA.EXTENDED表示如果sql语句中带有绑定变量也会被记录下来.
      --如果是这样选audit_trail => SYS.DBMS_FGA.DB表示不会记录绑定变量
      --SYS.DBMS_FGA.DB+SYS.DBMS_FGA.EXTENDED改成SYS.DBMS_FGA.XML+SYS.DBMS_FGA.EXTENDED表示记录保存成xml文件
--xml文件所在目录可以通过SHOW PARAMETER AUDIT_FILE_DEST查看,如果要更改目录ALTER SYSTEM SET AUDIT_FILE_DEST = directory_path DEFERRED;
 ,audit_column_opts     => SYS.DBMS_FGA.ALL_COLUMNS)
END;
 
 查看创建好的policy对象和符合审计条件时被记录的操作
我们可以通过select * from dba_objects查看table,view等对象,类似的policy创建好后我们可以通过SELECT * FROM DBA_AUDIT_POLICIES来查看.
如果我们对表temp执行了DML操作,那些信息将会被操作到sys用户下的表中,Select* from sys.dba_fga_audit_trail可以查找到.(注意这只有前面设置将记录信息
保存到数据库才能这样查,如果保存到xml文件中可以Select *from  V$XML_AUDIT_TRAIL)
 
2.删除审计策略,假如删除上面创建的策略
begin
SYS.DBMS_FGA.DROP_POLICY  (
            object_schema    => 'ARWEN'
            ,object_name     => 'TEMP'
            ,policy_name     => 'FGA_TEMP'
            );
end;
 
3.使用handler_module
 
假如你想在审计到某些操作时还进行进一步的处理,比如把信息写到自己创建的日志中,或者发送邮件通知相关人员.就要在创建policy时使用handler_module的功能,指定一个存储过程去做相应的处理.假如我创建一个存储过程temp_handler
CREATE OR REPLACE PROCEDURE temp_handler
( v_object_schema VARCHAR2
      , v_object_name VARCHAR2
      , v_policy_name VARCHAR2
     )
     IS
v_temp varchar2(30);
begin
null;
end temp_handler;
--这里的存储过程有点特殊,它必须带v_object_schema VARCHAR2, v_object_name VARCHAR2, v_policy_name VARCHAR2这三个参数才行,如果直接写一个一般的存储过程就会出错的.在policy中调用存储过程就这样 写
 
BEGIN
          SYS.DBMS_FGA.ADD_POLICY  (
   object_schema    => 'ARWEN'
   ,object_name     => 'TEMP'
   ,policy_name     => 'FGA_TEMP'
   ,audit_condition       => NULL
   ,audit_column          => eno,ename
   ,handler_schema        =>'ARWEN' --注意此处的用户只能是创建此policy的用户,如果是其他用户名会出错的
   ,handler_module        => 'TEMP_HANDLER'
   ,enable                => TRUE
   ,statement_types       =>'SELECT,INSERT,UPDATE,DELETE'
   ,audit_trail           => SYS.DBMS_FGA.DB+SYS.DBMS_FGA.EXTENDED
   ,audit_column_opts     => SYS.DBMS_FGA.ALL_COLUMNS)
END;

与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

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

以上是“Oracle中FGA功能怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153553.html

(0)

相关推荐

  • 脂肪代谢过程,什么状态下人体可以先消耗脂肪

    技术脂肪代谢过程,什么状态下人体可以先消耗脂肪这是减肥的朋友最关心的一个话题,因为每个减肥粉们都想提高减脂效率,让自己尽快的瘦下来。在这里,首先要说明,我们只讨论在运动减肥中”什么状态下先消耗脂肪“,其他什么药物减肥脂肪

    生活 2021年10月24日
  • 解魔方的方法的步骤,魔方最简单的恢复方法谢谢

    技术解魔方的方法的步骤,魔方最简单的恢复方法谢谢在这里向大家介绍一种比较简单的魔方六面还原方法解魔方的方法的步骤。这种方法熟练之后可以在大约30秒之内将魔方的六面还原。 在介绍还原法之前,首先说明一下魔方移动的记法。魔方

    生活 2021年10月28日
  • Spring Data Redis应用场景分析

    技术Spring Data Redis应用场景分析 Spring Data Redis应用场景分析在Spring Boot中,默认集成的redis是Spring Data Redis。Spring Da

    礼包 2021年12月5日
  • LARAVEL AJAX简单跨域的示例分析

    技术LARAVEL AJAX简单跨域的示例分析本篇文章为大家展示了LARAVEL AJAX简单跨域的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。//前端 <scri

    攻略 2021年10月21日
  • 寒冬腊月意思,寒冬腊月、北国风光、造句

    技术寒冬腊月意思,寒冬腊月、北国风光、造句【意思】指农历十二月天气最冷的时候。泛指寒冷的冬季。【读音】hán dōng là yuè 【出处】汉·无名氏《别诗(骨肉缘枝叶)》:“征夫怀远路,游子恋故乡。寒冬十二月,晨起

    生活 2021年10月24日
  • CSS中利用伪类、伪元素和相邻元素选择器的技巧有哪些

    技术CSS中利用伪类、伪元素和相邻元素选择器的技巧有哪些CSS中利用伪类、伪元素和相邻元素选择器的技巧有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望

    攻略 2021年11月16日