当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle:小编概述数据库安全性

Oracle
大型数据库的设计原则与开发技巧
Oracle重做日志文件
如何使用Oracle的COALESCE函数
使用Oracle 10g Data Pump重组表空间
asp连接oracle
C++连接Oracle
详解Oracle的几种分页查询语句
简述Oracle数据仓库的体系结构
如何从完好的数据文件恢复oracle数据库
Oracle中OSFA和数据仓库简介
Oracle数据库段管理有技巧
Oracle中存取控制介绍
日志操作模式,Oracle数据的保护伞
Oracle中SQL语句解析的步骤
Oracle多粒度封锁机制研究(一)
Oracle多粒度封锁机制研究(二)
Oracle:教你删除Oracle数据库中重复没用的数据
Oracle:外部表在Oracle数据库中使用心得
Oracle:使用Oracle外部表的五个限制
Oracle:为什么Oracle字段的默认值不能用?

Oracle:小编概述数据库安全性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 246 ::
收藏到网摘: n/a

数据安全性问题常与数据完整性问题混淆,但是这两个概念实际上是不同的。安全性是指保护数据以防止不合法的使用造成数据泄漏、更改和破坏;完整性是指数据的准确性和有效性。通俗地讲:

安全性( s e c u r i t y )保护数据以防止不合法用户故意造成的破坏;

完整性( i n t e g r i t y )保护数据以防止合法用户无意中造成的破坏;

或者简单地说就是:安全性确保用户被允许做其想做的事情;完整性确保用户所做的事

情是正确的。当然这两个概念也有相似点:系统应对用户不能违背的约束了如指掌;这些约束必须用合适的语言给出(通常由D B A),而且必须通过系统日志进行维护; D B M S必须监控用户的操作以确定约束发挥了效用。在本章中,我们专门讨论安全性问题。

安全性问题涉及许多方面,如:

法律、社会以及伦理问题(例如:请求者对其请求的信息是否具有合法权利?);

物理控制(例如:计算机或终端所在房间是否上锁或受到保护);

政策问题(例如:拥有系统的企业如何控制使用者对数据的存取);

可操作性问题(例如:如果某个密码方案被采用,密码自身又如何保密?);

硬件控制(例如:处理单元是否具备安全特性,如存储保护键或保护操作模式);

操作系统支持(例如:底层操作系统在退出时是否抹去了主存和磁盘上的内容);

最后还包括

数据库系统需专门考虑的问题(例如:数据库系统是否具有数据所有权的概念)。

现代的D B M S通常采用自主存取控制和强制存取控制这两种方法来解决安全性问题,有的只提供其中的一种方法,有的两种都提供。无论采用哪种存取控制方法,需要保护的数据单元或数据对象包括从整个数据库到某个元组的某个部分。两者的区别为:

在自主存取控制方法(discretionary control)中,用户对不同的数据对象具有不同的存取

权限(也称为优先权),而且没有固有的关于哪些用户对哪些数据对象具有哪些存取权限

的限制(例如:用户U 1能看到A但看不到B,而用户U 2能看到B但看不到A)。因此自主存取控制非常灵活。

在强制存取控制方法(mandatory control) 中,每一个数据对象被标以一定的密级

(classification level),每一个用户也被授予一个许可证级别(clearance level)。对于任意

一个对象,只有具有合法许可证的用户才可以存取。因此,强制存取控制本质上具有分

层特点,且相对比较严格(例如:如果用户U 1能看到A但看不到B,这说明B的密级高于A,因此不存在用户U 2能看到B但看不到A)。

不管我们采用的是自主存取控制方法还是强制存取控制方法,所有有关哪些用户可对哪

数据对象进行操作的决定都是政策决定,这显然超出了D B M S的权限,D B M S只是实施这些决定。这就要求:

政策决定的结果( a)需为系统所知(这可通过某一特定的定义语言的语句来实现);

b)需被系统记住(这可通过将它们保存在目录中实现)。

必须采用一定的方式检查存取请求是否违背目录中适用的安全性约束(通常用“存取请求”表示涉及的请求操作、请求对象以及请求用户),这主要通过D B M S的安全性子系统(security subsystem)或者授权子系统(authorization subsystem)实现。

为了决定哪些安全性约束适用于给定的存取请求,系统必须能识别请求的来源,也就是请求用户。因此,当用户登录系统时必须给出用户I D以及口令( p a s s w o r d )。口令只能为系统所知,并用以保证用户I D的合法性。

关于最后一点,注意一定数量的不同用户可能共享同一I D。这种情况下系统支持用户组(user group),并允许组内每一用户共享对同一数据对象的相同存取权限。将用户加入用户组以及将用户从用户组删除的操作应与指定用户组对哪些数据对象拥有哪些权限的操作分离。但是注意记录用户组内有哪些用户的最佳位置还是目录(或为数据库自身)。一个用户组嵌套的系统,并提到“将用户分成有层次的用户组,提供了强有力的管理有着大量用户以及数据对象的大型系统的工具”。