Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103691880
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-05-05 15:51:59

   来源:赛迪网    作者:Role

(3)列级安全性

Oracle列级安全性可以由视图实现,也可以直接在基本表上定义。

用视图定义表的垂直子集就可以实现列级安全性,方法与上面类似。

直接在基本表上定义和回收列级权限也是使用GRANT和REVOKE语句。目前Oracle的列级权限只有UPDATE,回收列级UPDATE权限时,Oracle不允许一列一列地回收,只能回收整个表的UPDATE权限。例如,

GRANT UPDATE(Sno,Cno)ON SC TO U2;

把对SC表中Sno列和Cno列的UPDATE权限授予U2用户。

REVOKE UPDATE ON SC FROM U2;

回收了U2用户对SC表中Sno列和Cno列的UPDATE权限。

在Oracle中,表、行、列三级对象自上而下构成一个层次结构,其中上一级对象的权限制约下一级对象的权限。例如当一个用户拥有了对某个表的UPDATE权限,即相当于在表的所有列都拥有了UPDATE权限。

Oracle对数据库对象的权限采用分散控制方式,允许具有WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先。

Oracle把所有权限信息记录在数据字典中,当用户进行数据库操作时,Oracle首先根据数据字典中的权限信息,检查操作的合法性。在Oracle中,安全性检查是任何数据库操作的第一步。

三、Oracle的审计技术

在Oracle中,审计分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。

系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。

Oracle的审计功能很灵活,是否使用审计,对哪些表进行审计,对哪些操作进行审计等都可以由用户选择。为此,Oracle提供了AUDIT语句设置审计功能,NOAUDIT语句取消审计功能。设置审计时,可以详细指定对哪些SQL操作进行审计。例如,

对修改SC表结构或数据的操作进行审计可使用如下语句:

AUDIE ALTER,UPDATE ON SC;

取消对SC表的一切审计可使用如下语句:

NOAUDIT ALL ON SC;

在Oracle中,审计设置以及审计内容均存放在数据字典中。其中审计设置记录在数据字典表SYS.TABLES中,审计内容记录在数据字典表SYS.AUDIT_TRAIL中。

四、用户定义的安全性措施

除了系统级的安全性措施外,Oracle还允许用户用数据库触发器定义特殊的更复杂的用户级安全措施。例如,规定只能在工作时间内更新Student表,可以定义如下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure_student

BEFORE INSERT OR UPDATE OR DELETE

ON student

BEGIN

IF (TO_CHAR (SYSDATE, 'DY') IN ('SAT', 'SUN'))

OR (TO_NUMBER (SYSDATE, 'HH24') NOT BETWEEN 8 AND 17)

THEN

raise_application_error

(-20506,

'You may only change data during normal business hours.'

);

END IF;

END;

触发器一经定义便存放在数据字典中。用户每次对Student表执行INSERT,UPDATE或DELETE操作时都会自动触发该触发器,由系统检查当时的系统时间,如果是周六或周日,或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。

类似的,用户还可以利用触发器进一步细化审计规则,使审计操作的粒度更细。

综上所述,Oracle提供了多种安全性措施,提供了多级安全性检查,其安全性机制与操作系统的安全机制彼此独立,数据字典在Oracle的安全性授权和检查以及审计技术中起着重要作用。

阅读(287) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~