Oracle数据库提供的多种安全性措施


Oracle的安全措施主要有三个方面,一是用户标识和鉴定;二是授权和检查机制;三是审计技术(是否使用审计技术可由用户灵活选择);除此之外,Oracle还允许用户通过触发器灵活定义自己的安全性措施。

  一、用户标识和鉴定

  在Oracle中,最外层的安全性措施是让用户标识自己的名字,然后由系统进行核实。Oracle允许用户重复标识三次,如果三次未通过,系统自动退出。

  二、授权与检查机制

  Oracle的权限包括系统权限和数据库对象的权限两类,采用非集中的授权机制,即DBA负责授予与回收系统权限,每个用户授予与回收自己创建的数据库对象的权限。

  Oracle允许重复授权,即可将某一权限多次授予同一用户,系统不会出错。Oracle也允许无效回收,即用户没有某种权限,但回收此权限的操作仍算成功。

  1. 系统权限

  Oracle提供了80多种系统权限,如创建会话、创建表、创建视图、创建用户等。DBA在创建一个用户时需要将其中的一些权限授予该用户。

  Oracle支持角色的概念。所谓角色就是一组系统权限的集合,目的在于简化权限管理。Oracle除允许DBA定义角色外,还提供了预定义的角色,如CONNECT,RESOURCE和DBA。

  具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵。即可以执行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作。

  RESOURCE角色可以创建表,即执行CREATE TABLE操作。创建表的用户将拥有对该表的所有权限。

  DBA角色可以执行某些授权命令,创建表,对任何表的数据进行操纵。它涵盖了前两种角色,此外还可以执行一些管理操作,DBA角色拥有最高级别的权限。

  例如DBA建立一用户U1后,欲将ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系统权限授予U1,则可以只简单地将CONNECT角色授予U1即可:

  GRANT CONNECT TO U1;

  这样就可以省略十几条GRANT语句。

  2. 数据库对象的权限

  在Oracle中,可以授权的数据库对象包括基本表、视图、序列、同义词、存储过程、函数等,其中最重要的是基本表。

  对于基本表Oracle支持三个级别的安全性:表级、行级和列级。

  (1)表级安全性

  表的创建者或者DBA可以把表级权限授予其他用户,表级权限包括:

  ALTER:修改表定义

  DELETE:删除表记录

  INDEX:在表上建索引

  INSERT:向表中插入数据记录

  SELECT:查找表中记录

  UPDATE:修改表中的数据

  ALL:上述所有权限

  表级授权使用GRANT和REVOKE语句。

  (2)行级安全性

  Oracle行级安全性由视图实现。用视图定义表的水平子集,限定用户在视图上的操作,就为表的行级提供了保护。视图上的授权与回收与表级完全相同。

  例如,只允许用户U2查看Student表中信息系学生的数据,则首先创建信息系学生的视图S_IS,然后将该视图的SELECT权限授予U2用户。

  (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的安全性授权和检查以及审计技术中起着重要作用

本文作者:



相关阅读:
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
PHP 清除HTML代码、空格、回车换行符的函数
asp 下产生任意位数随机密码的代码
Linux操作系统的备份方法介绍
去html代码的正则 推荐" target="_blank">去html代码的正则 推荐
简要介绍SQL Server 2008新的事件处理系统
Oracle数据库9i在AIX环境下的性能调整
CommunityServer又称CS论坛的相关学习资料
W3C教程(8):W3C XML Schema 活动
谈谈PHP语法(2)
JDBCTM 指南:入门7-CallableStatement
在PHP中使用XML
令人期待的PHP 6.0 新语法改进及特性增强
在CentOS系统安装pop3的步骤
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 2016年单位个人工作总结 高考常见文学常识和名句名篇 2015大学生入伍心得体会 饭局 工作经验心得 《遨游汉字王国》教学设计 樵夫 十五年的思考与承诺 学生会竞选的演讲稿 体育教师实习报告范文 女生只要看完后都哭了,一个真正爱你的男人原来是这样的 细雨听古韵,锦书画初春 夏日炎炎——李文静作文200字 毕业生入职培训总结 怀一份思念, 在你的温柔上走 校园美景450字 2015英语经典句子大全 小学家长代表发言稿 和妈妈买菜 我最敬佩的人——爸爸350字 假如你要结婚,请给我一张请柬 边境风云经典台词语录 浅议绿色贸易壁垒对我国绿色食品出口的影响 《风筝》教学案2 此去尘路千万里,梦绕魂牵在楼兰 我最喜欢语文课作文 新学期打算作文500字精选 秋天畅思(作者:云朵儿GAO) 英豪大陆{2}【热血英豪作文1300字 鲛人 祝福自己生日的话 【今夜,与你宛在水中央】 我的家乡200字 冰的前生是泪水 谁来买走我的恨作文1400字 小学语文教师述职报告优秀范文 《笑猫日记寻找黑骑士》读后感 初中初一作文600字:假如我是一只火炬 教师假期学习心得体会 我的寿桃——谢欣雨 没有到不了的明天 小学五年级作文650字:可爱的小弟弟 民政局冰冻雨雪天气救灾应急预案 镜子里的房间 牛根生经典励志语录50句 感悟人生哲理经典语录 倾听四季——一 学会宽容议论文600字 艺演长安风 “老油条”这家伙

Copyright © 2016 phpStudy |