分享
 
 
 

Oracle9i新特性之细粒度访问原则

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

分区细粒度访问控制

例如:在一个控制环境中,这个特性被用来控制两个公司对sales表的访问.每一个公司拥有的独立的应用程序sell_it和prod_opt,需要拥有不同的安全策略.第一个公司的sell_it应用程序认证的用户需要只能访问表中来自他们相同地区的记录;那就是sales.cust_id+customer.country的联合校验必须符合这个用户的地区相吻合.第二个公司的prod_opt应用程序的访问权限被设置为只能访问最近事务提交的记录上.也就是与sales.time_id相关联.在8i中,在一个细粒度访问控制中拥有这两个策略将需要开发公司共同协作部署.如果两个产品来自竞争的两个公司,这实际上是不可行的.依靠定义"应用程序设置"来强行控制对基本objects的一些特殊规定,每一个应用程序现在能够实现一系列私有的安全策略.

二:细粒度审计.

...一个提供扩展的入侵检测,捕获sql执行语句,而不是返回数据的工具.

...可以将审计策略捆绑在带有where条件的select语句的表或视图上.

...oracle用自治事务来处理用户自定义的审计事件.

...一个基于列的审计特性减少了错误审计的发生.

数据库管理系统中的审计经常被用来监控数据的访问.审计纪录是验证违反数据访问权限的基础.新的细粒度审计机制从事于执行更细小级别的审计.

新的审计原则是基于简单的用户定义关于表的查询条件的sql谓词. 谓词可以在当查询结果中返回了指定的值得时候进行审计.

在基于查询值的审计中,也有一些情形下管理员只关心某一个特定的被引用和访问列情况.因为无论一个列的查询审计发生在dml的任何部分都可以进行审计,所以oracle对这个查询的审计将不存在任何问题.

在8i中,审计项只能被设置用来监控对对象的访问权,只有一些固定的情况,比如用户id,时间戳,对象名称会被记录在审计跟踪里.

细粒度审计可以调用一个存储过程来作为审计过程的一部分.

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

如何进行细粒度审计

...安全管理员用dbms_fga包来为有问题的表建立审计原则.

dbms_fga.add_policy(),dbms_fga.enable_policy(),dbms_fga.disable_policy(),dbms_fga.drop_policy().

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

PROCEDURE ADD_POLICY

参数名称 类型 输入/输出默认值?

OBJECT_SCHEMA VARCHAR2 IN DEFAULT

OBJECT_NAME VARCHAR2 IN

POLICY_NAME VARCHAR2 IN

AUDIT_CONDITION VARCHAR2 IN DEFAULT

AUDIT_COLUMN VARCHAR2 IN DEFAULT

HANDLER_SCHEMA VARCHAR2 IN DEFAULT

HANDLER_MODULE VARCHAR2 IN DEFAULT

ENABLE BOOLEAN IN DEFAULT

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

PROCEDURE DISABLE_POLICY

参数名称 类型 输入/输出默认值?

OBJECT_SCHEMA VARCHAR2 IN DEFAULT

OBJECT_NAME VARCHAR2 IN

POLICY_NAME VARCHAR2 IN

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

PROCEDURE DROP_POLICY

参数名称 类型 输入/输出默认值?

OBJECT_SCHEMA VARCHAR2 IN DEFAULT

OBJECT_NAME VARCHAR2 IN

POLICY_NAME VARCHAR2 IN

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

PROCEDURE ENABLE_POLICY

参数名称 类型 输入/输出默认值?

OBJECT_SCHEMA VARCHAR2 IN DEFAULT

OBJECT_NAME VARCHAR2 IN

POLICY_NAME VARCHAR2 IN

ENABLE BOOLEAN IN DEFAULT

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

...用表dba_audit_policies来列出已定义的原则.

...用表dba_fga_audit_trail来放置审计纪录.这个表包括触发审计的用户名,SQL语句,

审计名称,会话ID号,时间戳,和其他一些属性.

...管理员可以定义审计事件处理器来处理发生的时间,比如像管理员传送警告页.

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

下面列举一个新的细粒度原则的例子,从这个例子我们可以看出9I细粒度审计原则与8I的区别.

如果我们的原则设为:AUDIT_CONDITION='SALARY>10000'

这个时候我们看一下我们执行

SELECT last_name,salary FROM employees WHERE last_name = ’Russell’

尽管我们选择的查询条件中没有包含SALARY列,但是由于我们的对SALARY列进行查询,如果RUSELL的SALARY值大于10000,那么这条记录将被审计.

审计纪录如下

'SELECT LAST_NAME,SALARY FROM EMPLOYEES WHERE LAST_NAME='RUSSELL',<TIMESTAMP>,<SCN>,

<USERNAME>,........

如果我们执行

SELECT LAST_NAME,SALARY FROM EMPLOYEES WHERE SALARY<9000

那么尽管这条语句访问,查询了SALARY列,但是由于他访问的值未达到审计阀值,那么将不被审计.

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

细粒度审计只对一个有WHERE条件的SELECT语句有效,并且只能设定一个被审计的列.

上面的查询语句触发的事件不是造成用户无法查询到这些语句,这些SALARY>10000实际上被返回

给查询用户,但是同时一个审计事件被写到审计跟踪里,包括完整的SQL语句,时间戳等信息.

细粒度审计并不自动的捕获返回给查询用户的查询结果,但是你可以用细粒度审计原则结合闪回

查询重建返回给用户的纪录.

细粒度审计能够实现数据库系统的入侵监测功能.例如,开发人员可以为一个审计增加一个事件处理器来通知管理员,是否有被审计的事件发生.非SQL的访问是不被审计的,例如:如果你使用DIRECT PATH EXPORT,这种方式绕过了数据库的SQL层,审计条件将不被触发.

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

细粒度审计事件处理器

如何创建.

CREATE PROCEDURE catchlog (schema_name VARCHAR2,table_name VARCHAR2,policy VARCHAR2)

AS BEGIN

-- send an alert note to my pager

UTIL_ALERT_PAGER(’CatchLog:’||Table_name||SYSDATE);

END;

/

如何添加

DBMS_FGA.ADD_POLICY ( ...HANDLER_SCHEMA=>’HRMGR’, HANDLER_MODULE=>’CATCHLOG’);

细粒度审计事件处理器总结:

在上面的例子中,用户HRMGR创建了一个存储过程CATCHLOG,参数的类型和我们的例子必须

一致,但是名字可以改变.

审计事件处理器的添加需要一个拥有权限的用户

当第一个我们关心的行被取得时,审计事件纪录将被记录并存放下来,审计函数HRMGR.CATCHLOG

被调用.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有