`
king_tt
  • 浏览: 2290458 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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为系统当前时间:
CREATEORREPLACETRIGGERsecure_student
BEFOREINSERTORUPDATEORDELETE
ONstudent
BEGIN
IF(TO_CHAR(SYSDATE,'DY')IN('SAT','SUN'))
OR(TO_NUMBER(SYSDATE,'HH24')NOTBETWEEN8AND17)
THEN
raise_application_error
(-20506,
'Youmayonlychangedataduringnormalbusinesshours.'
);
ENDIF;
END;


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

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

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

相关推荐

    Oracle数据库异地容灾方案概述.docx

    ### Oracle数据库异地容灾方案概述 #### 一、需求分析 **1.1 序言** 随着信息技术的发展,数据已成为企业的重要资产。然而,自然灾害、人为失误等因素可能导致数据丢失,进而给企业带来巨大损失。因此,构建一套...

    如何备份还原oracle数据库

    因此,定期备份Oracle数据库是确保数据安全性的必要措施之一。备份不仅能够防止数据丢失,还能提高系统的整体可用性和稳定性。 ### 二、Oracle数据库备份方式概述 #### 1. 全量备份 全量备份是指备份整个数据库的...

    Oracle 数据库设计开发规范

    Oracle 数据库设计开发规范是指在 Oracle 数据库开发过程中,为了确保系统的稳定性、可扩展性和安全性所制定的规则和标准。这些规则和标准涵盖了数据库设计、开发、测试和维护的各个方面,旨在确保整个开发过程的...

    Oracle数据库系统应用与开发

    一、Oracle数据库系统概述 Oracle数据库系统是Oracle公司开发的,它采用SQL作为查询语言,支持分布式数据库、事务处理、备份恢复等多种功能。Oracle以其强大的性能、安全性及可扩展性闻名,广泛应用于金融、电信、...

    Oracle数据库安全管理概述.docx

    1. **Oracle数据库安全控制策略概述**: Oracle数据库的安全控制策略旨在保护数据库中的敏感信息,防止未授权访问和恶意攻击。这包括对用户身份验证、授权、审计和加密的管理。通过实施这些策略,管理员可以确保...

    关于对oracle数据库安全管理的研究.pdf

    为了解决上述安全问题,以下是Oracle数据库安全管理的具体措施: 1. 硬件安全保护:确保数据库硬件设施的安全是数据库安全的基础。使用大容量磁盘阵列存储数据,并采用磁盘映像技术将所有数据库文件自动分布在多个...

    oracle数据库安全加固方案

    ### Oracle数据库安全加固方案知识点详解 #### 一、概述 Oracle数据库因其稳定性和高效性,在企业和组织中广泛应用。然而,随着网络安全威胁日益增多,确保Oracle数据库的安全性变得尤为重要。本方案详细介绍了如何...

    C#版Oracle数据库通用操作类

    - 支持参数化 SQL 语句,从而增强安全性并减少 SQL 注入风险。 - **事务处理** - 实现了事务控制机制,允许开发者进行更复杂的数据库操作,如批量更新或回滚操作。 - **异常处理** - 在实际应用中,为每个数据库...

    oracle数据库学生管理系统

    **计算机系统的安全性概述**: - 数据库的安全性是指保护数据免受非法访问、篡改或丢失的措施。 - 包括用户认证、权限管理、数据加密等方面。 **授权与回收**: - 使用SQL语句进行授权与回收操作,以确保只有经过授权...

    实验三 数据库安全性技术.doc )

    一、数据库安全性概述 数据库安全性是指保护数据库免受未经授权的访问、使用、披露、修改或破坏的各种机制和技术。数据库安全性技术包括身份验证、访问控制、加密、审计、备份和恢复等。 二、实验内容 实验内容...

    Oracle数据库知识点总结 Oracle数据库架构与组件学习攻略

    Oracle数据库具有高度可伸缩性、可靠性、安全性和多语言支持等特点,是企业级应用和大型数据中心的首选数据库之一。 如何学习: 了解Oracle数据库的起源、发展以及其在企业级应用中的地位和作用,有助于形成对Oracle...

    oracle数据库简单介绍

    2. **Oracle概述**:Oracle数据库采用SQL语言进行数据操作,并支持分布式数据库系统、事务处理、并发控制以及数据安全性。它的特点包括高级的数据恢复机制、高效的查询优化器、多租户架构(Oracle Container for ...

    管理信息化ORACLEOracle数据库异地容灾方案概述.pdf

    Oracle数据库异地容灾方案是一种重要的信息技术策略,旨在保护企业的关键数据免受灾难性事件的影响,确保业务连续性和数据安全性。本方案主要针对Oracle数据库,利用Oracle Data Guard技术实现远程的数据备份和故障...

    oracle数据库实例视频教程01

    Oracle数据库以其强大的数据存储能力、高度可扩展性、高可用性和安全性著称。理解这些基础信息对于后续的学习至关重要。 接下来,你将学习如何安装和配置Oracle数据库。这包括选择合适的版本、安装步骤、设置环境...

    oracle数据库系统应用与开发

    六、Oracle数据库安全 数据库安全涉及用户身份验证、授权和审计。初学者需要知道如何创建用户、分配权限、设置角色以及实施审计策略,以保护数据库免受未经授权的访问和数据泄露。 七、Oracle数据库性能优化 性能...

    oracle数据库概述.ppt

    Oracle数据库在安全性方面也有着强大的功能,支持复杂的权限控制和审计机制,确保数据的安全访问。同时,Oracle数据库支持并行处理和分布式数据库系统,能够处理大规模的数据量和高并发访问场景。Oracle数据库还提供...

Global site tag (gtag.js) - Google Analytics