|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。
实际中的细粒度审计(2)
办理FGA战略
在前文中您看到了怎样增加FGA战略。要删除战略,您可使用以下语句:
begindbms_fga.drop_policy(object_schema=>BANK,object_name=>ACCOUNTS,policy_name=>ACCOUNTS_ACCESS);end;
关于变动战略而言,没有随取随用的办理计划。要变动战略中的任何参数,必需删除战略,再利用变动后的参数增加战略。
偶然您大概必要一时禁用审计搜集―比方,假如您但愿将线索表挪动到分歧的表空间大概要删除线索表。您能够按以下办法禁用FGA战略:
begindbms_fga.enable_policy(object_schema=>BANK,object_name=>ACCOUNTS,policy_name=>ACCOUNTS_ACCESS,enable=>FALSE);end;
要从头启用它,可以使用统一函数,可是将参数enable设置为TRUE。
处置器模块
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是该表上的一个视图。表3包括该视图中主要列的冗长形貌。
一个主要的列是SQL_BIND,它指定查询中利用的绑定变量的值―这是明显加强该工具功效的一项信息。
另外一个主要的列是SCN,当产生特定的查询时,它纪录体系变动号。此信息用于辨认用户在特准时间看到了甚么,而不是如今的值,它利用了闪回查询,这类查询可以显现在指定的SCN值时的数据。我将在本系列的第2部分中具体申明这类功效壮大的特征。
视图和FGA
到今朝为止我已会商了在表上使用FGA;如今让我们来看怎样在视图上利用FGA。假定在ACCOUNTS表上界说视图VW_ACCOUNTS以下:
createviewvw_accountsasselect*fromaccounts;
如今,假如用户从视图中而不是从表中举行选择:
select*fromvw_accounts;
您将看到以下审计线索:
selectobject_name,sql_textfromdba_fga_audit_trail;OBJECT_NAMESQL_TEXT------------------------------------------------------------ACCOUNTSselect*fromvw_accounts
注重,是基表称号而不是视图称号呈现在OBJECT_NAME列中,由于视图中的选择是从基表中举行选择。可是,SQL_TEXT列纪录了用户提交
的实践语句,而这恰是您但愿懂得的。接上去的步骤
浏览有关DBMS_FGA程序包的更多信息
会见Oracle数据库主页
会见Oracle平台平安性主页
假如您只但愿审计对视图的查询而不是对表的查询,能够对视图自己创建战略。经由过程将视图称号而不是表的称号传送给打包的历程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手艺和OracleDatabase10g中的新特征,这些特征使FGA的功效极其壮大,合用于一切范例的审计情形。
ArupNanda(arup@proligence.com)是IntelliClaim的首席数据库计划职员,该公司位于Connecticut的Norwalk,供应对卫生保健保险索赔办理高度平安和基于划定规矩的优化。他是2003年度OracleDBA奖的取得者,并与别人互助编著了行将出书的Oracle隐私平安性审计(RampantTechPress出书,2003)。
表1:演示什么时候审计操纵和什么时候不审计操纵的各类情形SQL语句审计形态selectbalancefromaccounts;举行审计。用户选择了在增加战略时所指定的审计列BALANCE。select*fromaccounts;举行审计。即便用户没有明白指定列BALANCE,*也隐含地选择了它。selectcust_idfromaccountswherebalance<10000;举行审计。即便用户没有明白指定列BALANCE,where子句也隐含地选择了它。selectcust_idfromaccounts;不举行审计。用户没有选择列BALANCE。selectcount(*)fromaccounts;不举行审计。用户没有明白或隐含地选择列BALANCE。
表2:数据字典视图DBA_AUDIT_POLICIES中主要的列OBJECT_SCHEMA对其界说了FGA战略的表或视图的一切者OBJECT_NAME表或视图的称号POLICY_NAME战略的称号―比方,ACCOUNTS_ACCESSPOLICY_TEXT在增加战略时指定的审计前提―比方,BALANCE>=11000POLICY_COLUMN审计列―比方,BALANCEENABLED假如启用则为YES,不然为NOPF_SCHEMA具有战略处置器模块的形式(假如存在)PF_PACKAGE处置器模块的程序包称号(假如存在)PF_FUNCTION处置器模块的历程称号(假如存在)
表3: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语句利用的绑定变量(假如存在)
你不用花费很多时间和金钱来培训现有的职工,或者去花大价钱雇用那些拥有各种证书的开发者。因为MySQL的维护和管理在很大程度上是“傻瓜型”的。 |
|