Oracle 数据库安全性探讨

时间:2022-06-25 03:47:46

Oracle 数据库安全性探讨

摘要:在数据库系统中大量数据集中存放,为许多用户共享,数据库的安全问题显得尤为突出。数据库管理系统作为负责数据库管理和维护的计算机软件系统,在很大程度上决定了数据库的安全性。该文重点讨论了Oracle 数据库管理系统的安全策略。

关键词:数据库;数据库管理系统;Oracle;安全

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2009)25-7088-02

The Discussion of Oracle DataBase Security

YAN Zhuo

(AnHui university of sicence & technology Huai Nan 232001 AnHui China)

Abstract: So many users share data which is stored abundantly in database that the problem of Database security became very sharp. DataBase security is up to mainly the security of DataBase Mnagement System,a software system who manage the DataBase.This paper discusses mostly the security strategy of Oracle DataBase Mnagement System.

Key Words: DataBase; DataBase Mnagement System; Oracle; Security

数据库技术是信息时代的一个重要技术,它是现代计算机信息系统和计算机应用系统的基础和核心。在数据库系统中大量数据集中存放,为许多用户共享,数据库的安全问题显得尤为突出。

1 数据库系统安全概述

数据库系统由数据库和数据库管理系统两部分组成,数据库是数据的集合体,数据库管理系统(DataBase Mnagement System,DBMS)是一个专门负责数据库管理和维护的计算机软件系统。用户对数据库数据的任何操作都是在DBMS管理下进行的。因此,数据库系统的安全性很大程度上依赖于数据库管理系统。为了保证数据库数据的安全可靠性和正确有效性,DBMS必须提供统一的数据保护功能。

Oracle DBMS通过下列安全策略实现数据保护功能:

1)存取控制;2)数据完整性控制;3)数据库恢复;4)审计。

2 Oracle数据库安全策略

2.1存取控制

存取控制是DBMS最重要的安全策略之一,目的是防止非法用户进入系统以及合法用户对系统资源的非法使用。Oracle数据库系统引入用户(user)、模式(schema)、权限(privilege)的机制来实现数据库的存取控制。用户是拥有一定权限能够访问数据库的人员。模式是数据库对象的集合。当建立一个数据库用户时,Oracle DBMS对该用户建立一个相应的模式,模式名与用户名相同。一旦用户连接数据库,该用户就可存取相应模式中的全部对象。权限是Oracle数据库预先定义好的执行某些操作的能力。

2.1.1 用户鉴别

为了防止非授权的用户使用数据库资源,Oracle提供两种用户鉴别方法:

1)操作系统认证:Oracle认为操作系统用户是可靠的,即既然能登陆到操作系统那么Oracle数据库也能登陆。

实现方法:配置sqlnet.ora文件中的参数:SQLNET.AUTHENTICATION_SERVICES=(NTS),spfile(pfile)文件参数:REMOTE_LOGIN_PASSWORDFILE=('NONE')。

2)口令文件认证:Oracle认为操作系统用户是不可信任的,如果要访问数据库,必须进行再次认证。在口令文件认证方式下,Oracle DBMS使用口令文件来对具有sysdba或sysoper权限的用户进行身份认证。

实现方法:配置sqlnet.ora文件中的参数:SQLNET.AUTHENTICATION_SERVICES=(NONE),spfile(pfile)文件参数:REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED')。

2.1.2权限(privilege)

Oracle系统提供系统级(system)和对象级(object)两类权限,系统权限是指在系统级活动的能力,如Create session,Create user等等。对象权限就是指在表、视图、过程等对象上活动的能力,如Select,Update,Alter等。Oracle DBA可以通过角色(Role)对这两类权限进行管理。

Oracle DBMS通过权限实现数据库安全保护的过程如下:

1)DBA或对象的创建者通过SQL的GRANT和REVOKE语句,把授予(回收)权限的定义告知DBMS;

2)DBMS把授予(回收)权限的结果存入(取出)数据字典;

3)当用户提出操作请求时,DBMS根据数据字典中保留的权限定义进行检查,以决定是否可以执行该操作请求。

2.1.3Oracle精细访问控制

在一些特定的应用系统中,有些安全需求是具体或精细的,不是仅仅直接靠授予系统权限或对象权限就能解决的,因为在这些访问控制中可能包含了某些逻辑判断,需要用程序的方式实现某些安全策略,做到对访问权限的精细控制。为此,Oracle8i以后的版本引入了VPD(virtual private database)的概念,它能对每个用户所能访问的数据进行行级控制。

VPD 的工作方法是:通过制定相应的安全策略,向用户提供表的局部视图。安全策略实际上是一个会自动附着在用户提交给数据库的SQL语句(这里是指包括select、insert、update、delete等语句)后面的where子句。

2.2数据完整性控制

数据完整性(Data Integrity)是指一个数据集合完全、正确和一致的程度。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。Oracle数据完整性由完整性约束机制和触发器来实现。

2.2.1 完整性约束

在执行SQL或PL/SQL期间使用。Oracle利用完整性约束机制防止无效的数据进入数据库的基表,假如任何DML执行结果破坏完整性约束,该语句被回滚并返回一上个错误。Oracle数据库提供了5种数据完整性约束

1)NOT NULL约束:保证列中数据不为空;

2)UNIQUE码约束:保证列中数据是唯一的;

3)PRIMARY KEY约束:保证列中数据不为空,且是唯一的;

4)FOREIGN KEY约束:要求列中的数据必须在主表的主键列中出现;

5)CHECK约束:检查表中数据是否满足指定的检查规则。

2.2.2触发器

Oracle允许定义过程,当对相关的表作insert、update或delete语句时,这些过程被隐式地执行。这些过程称为数据库触发器。触发器类似于存储的过程,可包含SQL语句和PL/SQL语句,可调用其它的存储过程。过程与触发器差别在于调用方法:过程由用户或应用显式执行;而触发器是为一激发语句(insert、update、delete)发出进由Oracle隐式地触发。一个数据库应用可隐式地触发存储在数据库中多个触发器。

上一篇:基于神经网络修正的农业机器人视觉误差研究 下一篇:高校非计算机专业《VB程序设计》课程教学改革...