动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.ORACLE的PL/SQL二.
.Oracle中对两个数据表交集的查询.
.数据库链应用实例:将一台机器的.
.简单在线备份 script.
.核心设定档.
.Oracle数据库中快速转移数据的方.
.ORACLE 9I FOR AIX 5L 的安装.
.使Ubuntu下的Tora支持Oracle.
.重建密码文件--解决ORA-01991错误.
.数据库dblink介绍.
.Oracle 9i新特性研究二(轻松取得.
.有关系统和X正常运行的两个问题.
.讲解Oracle数据库自定义异常的使.
.(原创)ORA-01092: ORACLE 例程.
.standby Database.
.Oracle中三种上载文件技术(三).
.利用ORACLE系统账户默认口令提升.
.Oracle IBM 化对手为伙伴 结盟共.
.在oracle9i正确转换时区.
.Oracle数据库 ASM 功能方法的说明.

FGA 策略(细粒度审计)

发表日期:2008-2-9 |



  FGA 策略(细粒度审计)
  
  增加 FGA 策略 
  
   审计表
  GRANT RESOURCE,CONNECT TO BANK IDENTIFIED BY BANK;
  
  CREATE TABLE BANK.ACCOUNTS
  ( 
   ACCT_NO NUMBER PRIMARY KEY,
   CUST_ID NUMBER NOT NULL ,
   BALANCE NUMBER(15,2) NULL
  );
  insert into bank.accounts values(1,1,10000);
  insert into bank.accounts values(2,2,20000);
  commit;
  
  Begin
  dbms_fga.drop_policy (
   object_schema=>'BANK',
   object_name=>'ACCOUNTS',
   policy_name=>'ACCOUNTS_Access');
  dbms_fga.add_policy (
   object_schema=>'BANK',
   object_name=>'ACCOUNTS',
   policy_name=>'ACCOUNTS_ACCESS');
  end;
  /
  
  select * from bank.accounts; 
  select timestamp, db_user,os_user,object_schema,object_name,sql_text from dba_fga_audit_trail;
  
   审计列和审计条件, 在add_policy中加入
    audit_column => 'BALANCE'
    audit_condition => 'BALANCE >= 11000'
  Begin
  dbms_fga.drop_policy (
   object_schema=>'BANK',
   object_name=>'ACCOUNTS',
   policy_name=>'ACCOUNTS_ACCESS');
  
  dbms_fga.add_policy (
   object_schema=>'BANK',
   object_name=>'ACCOUNTS',
   audit_column => 'BALANCE',
   audit_condition => 'BALANCE >= 11000',
   policy_name=>'ACCOUNTS_ACCESS');
  end;
  /
  
   这个不可用,Why?
  select BALANCE from bank.accounts; 
  select timestamp, db_user,os_user,object_schema,object_name,sql_text from dba_fga_audit_trail;
  
  
  治理 FGA 策略 
  要删除策略,您可以使用以下语句: 
  begin
  dbms_fga.drop_policy (
  object_schema => 'BANK',
  object_name => 'ACCOUNTS',
  policy_name => 'ACCOUNTS_ACCESS'
    );
  end;
  /
  
   对于更改策略而言,没有随取随用的解决方案。要更改策略中的任何参数,必须删除策略,再使用更改后的参数添加策略。 
   需要临时禁用审计收集 — 例如,假如您希望将线索表移动到不同的表空间或者要删除线索表。您可以按如下方法禁用 FGA 策略: 
  begin
  dbms_fga.enable_policy (
  object_schema => 'BANK',
  object_name => 'ACCOUNTS',
  policy_name => 'ACCOUNTS_ACCESS',
  enable => FALSE
    );
  end;
  /
   重新启用很简单 enable => TRUE
  
  演示何时审计操作以及何时不审计操作的各种情况 SQL 语句 审计状态 
  
  select balance from accounts;  进行审计。用户选择了在添加策略时所指定的审计列 BALANCE。 
  select * from accounts;     进行审计。即使用户没有明确指定列 BALANCE,* 也隐含地选择了它。 
  select cust_id from accounts where balance < 10000; 进行审计。即使用户没有明确指定列 BALANCE,where 子句也隐含地选择了它。 
  select cust_id from accounts;  不进行审计。用户没有选择列 BALANCE。 
  select count(*) from accounts; 不进行审计。用户没有明确或隐含地选择列 BALANCE。 
  
  
  处理器模块 
   FGA 的功能不只是记录审计线索中的事件;FGA 还可以任意执行过程。

   过程可以执行一项操作,比如当用户从表中选择特定行时向审计者发送电子邮件警告,或者可以写到不同的审计线索中。
   这种存储代码段可以是独立的过程或者是程序包中的过程,称为策略的处理器模块。
   实际上由于安全性原因,它不必与基表本身处于同一模式中,您可能希望特意将它放置在不同的模式中。
   由于只要 SELECT 出现时过程就会执行,非常类似于 DML 语句启动的触发器,您还可以将其看作 SELECT 语句触发器。
   以下参数指定将一个处理器模块指定给策略: 
   handler_schema 拥有数据过程的模式
   handler_module 过程名称 
   处理器模块还可以采用程序包的名称来代替过程名称。在这种情况下,参数 handler_module 在 package.procedure 的格式中指定。 
  
  
  FGA 数据字典视图 
   FGA 策略的定义位于数据字典视图 DBA_AUDIT_POLICIES 中。表 2 包含该视图中一些重要列的简短描述。 
   审计线索收集在 SYS 拥有的表 FGA_LOG$ 中。对于 SYS 拥有的任何原始表,此表上的某些视图以对用户友好的方式显示信息。DBA_FGA_AUDIT_TRAIL 是该表上的一个视图。
   一个重要的列是 SQL_BIND,它指定查询中使用的绑定变量的值 — 这是显著增强该工具功能的一项信息。 
   另一个重要的列是 SCN,当发生特定的查询时,它记录系统更改号。
   此信息用于识别用户在特定时间看到了什么,而不是现在的值,它使用了闪回查询,这种查询能够显示在指定的 SCN 值时的数据。
  
  
  视图和 FGA 
   到目前为止我已经讨论了在表上应用 FGA;现在让我们来看如何在视图上使用 FGA。假定在 ACCOUNTS 表上定义视图 VW_ACCOUNTS 如下: 
  
  create view bank.vw_accounts as select * from bank.accounts;
  
  select * from bank.vw_accounts;
  select timestamp, db_user,os_user,object_schema,object_name,sql_text from dba_fga_audit_trail;
  
   假如您只希望审计对视图的查询而不是对表的查询,可以对视图本身建立策略。
   通过将视图名称而不是表的名称传递给打包的过程 dbms_fga.add_policy 中的参数 object_name,可以完成这项工作。
   随后 DBA_FGA_AUDIT_TRAIL 中的 OBJECT_NAME 列将显示视图的名称,并且不会出现有关表访问的附加记录。 
  
  其它用途 
   除了记录对表的选择访问,FGA 还可用于某些其它情况: 
   您可以对数据仓库使用 FGA,以捕捉特定的表、视图或物化视图上发生的所有语句,这有助于计划索引。您不需要到 V$SQL 视图去获取这些信息。即使 SQL 语句已经超出了 V$SQL 的期限,在 FGA 审计线索中将会始终提供它。 
   由于 FGA 捕捉绑定变量,它可以帮助您了解绑定变量值的模式,这有助于设计直方图集合等。 
   处理器模块可以向审计者或 DBA 发送警告,这有助于跟踪恶意应用程序。 
   由于 FGA 可以作为 SELECT 语句的触发器,您可以在需要这种功能的任何时候使用它。
  
  结论 
   FGA 使您在 Oracle 数据库中支持隐私和职能策略。因为审计发生在数据库内部而不是应用程序中,所以无论用户使用的访问方法是什么(通过诸如 SQL*Plus 等工具或者应用程序),都对操作进行审计,答应进行非常简单的设置。 
   下一次我将讨论高级 FGA 技术以及 Oracle Database 10g 中的新特性,这些特性使 FGA 的功能极为强大,适用于所有类型的审计情况。 
  
  
  数据字典视图 DBA_AUDIT_POLICIES 中重要的列 
  
  OBJECT_SCHEMA  对其定义了 FGA 策略的表或视图的所有者 
  OBJECT_NAME   表或视图的名称 
  POLICY_NAME   策略的名称 — 例如,ACCOUNTS_ACCESS 
  POLICY_TEXT   在添加策略时指定的审计条件 — 例如,BALANCE >= 11000 
  POLICY_COLUMN  审计列 — 例如,BALANCE 
  ENABLED     假如启用则为 YES,否则为 NO 
  PF_SCHEMA    拥有策略处理器模块的模式(假如存在) 
  PF_PACKAGE   处理器模块的程序包名称(假如存在) 
  PF_FUNCTION   处理器模块的过程名称(假如存在) 
  
  
  数据字典视图 DBA_FGA_AUDIT_TRAIL 中重要的列
  
  SESSION_ID   审计会话标识符;与 V$SESSION 视图中的会话标识符不同 
  TIMESTAMP    审计记录生成时的时间标记 
  DB_USER     发出查询的数据库用户 
  OS_USER     操作系统用户 
  USERHOST    用户连接的机器的主机名 
  CLIENT_ID    客户标识符(假如由对打包过程 dbms_session.set_identifier 的调用所设置) 
  EXT_NAME    外部认证的客户名称,如 LDAP 用户 
  OBJECT_SCHEMA  对该表的访问触发了审计的表所有者 
  OBJECT_NAME   对该表的 SELECT 操作触发了审计的表名称 
  POLICY_NAME   触发审计的策略名称(假如对表定义了多个策略,则每个策略将插入一条记录。
在此情况下,该列显示哪些行是由哪个策略插入的。) 
  SCN       记录了审计的 Oracle 系统更改号 
  SQL_TEXT    由用户提交的 SQL 语句 
  SQL_BIND    由 SQL 语句使用的绑定变量(假如存在)
上一篇:用ORACLE的高级复制实现内外网数据同步 人气:632
下一篇:9iDBMS_STATS包收集统计信息 人气:589
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-13 爬爬思特新闻管理系统 v2.0 Beta1
2008-10-13 Pligg v9.9.5 Beta
2008-10-13 广优邮件发送系统 v2.1
2008-10-13 缤纷互动视频交友 v3.1 RC
2008-10-13 MyShop网络商城 build 081005
2008-10-13 Chyrp 超轻量级开源博客引擎 v2.
2008-10-13 162100静态(论坛/文章)系统 v2.4
2008-10-13 金博人才招聘求职网黄金版 v4.2
2008-10-13 愚人笔记 v4.0
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成