数据库的安全性和完整性及其实现机制.docx
《数据库的安全性和完整性及其实现机制.docx》由会员分享,可在线阅读,更多相关《数据库的安全性和完整性及其实现机制.docx(12页珍藏版)》请在冰豆网上搜索。
![数据库的安全性和完整性及其实现机制.docx](https://file1.bdocx.com/fileroot1/2023-1/3/db23f77d-e702-4dc5-aba6-59327351792a/db23f77d-e702-4dc5-aba6-59327351792a1.gif)
数据库的安全性和完整性及其实现机制
数据库的安全性和完整性及其实现机制
为了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据保护功能。
数据保护也为数据控制,主要包括数据库的安全性、完整性、并发控制和恢复。
一、 数据库的安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。
在一般的计算机系统中,安全措施是一级一级设置的。
在DB存储这一级可采用密码技术,当物理存储设备失窃后,它起到保密作用。
在数据库系统这一级中提供两种控制:
用户标识和鉴定,数据存取控制。
在ORACLE多用户数据库系统中,安全机制作下列工作:
防止非授权的数据库存取;
防止非授权的对模式对象的存取;
控制磁盘使用;
控制系统资源使用;
审计用户动作。
数据库安全可分为二类:
系统安全性和数据安全性。
系统安全性是指在系统级控制数据库的存取和使用的机制,包含:
有效的用户名/口令的组合;
一个用户是否授权可连接数据库;
用户对象可用的磁盘空间的数量;
用户的资源限制;
数据库审计是否是有效的;
用户可执行哪些系统操作。
数据安全性是指在对象级控制数据库的存取和使用的机制,包含:
哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型。
在ORACLE服务器上提供了一种任意存取控制,是一种基于特权限制信息存取的方法。
用户要存取一对象必须有相应的特权授给该用户。
已授权的用户可任意地可将它授权给其它用户,由于这个原因,这种安全性类型叫做任意型。
ORACLE利用下列机制管理数据库安全性:
数据库用户和模式;
特权;
角色;
存储设置和空间份额;
资源限制;
审计。
1. 数据库的存取控制
ORACLE保护信息的方法采用任意存取控制来控制全部用户对命名对象的存取。
用户对对象的存取受特权控制。
一种特权是存取一命名对象的许可,为一种规定格式。
ORACLE使用多种不同的机制管理数据库安全性,其中有两种机制:
模式和用户。
模式为模式对象的集合,模式对象如表、视图、过程和包等。
第一数据库有一组模式。
每一ORACLE数据库有一组合法的用户,可存取一数据库,可运行一数据库应用和使用该用户各连接到定义该用户的数据库。
当建立一数据库用户时,对该用户建立一个相应的模式,模式名与用户名相同。
一旦用户连接一数据库,该用户就可存取相应模式中的全部对象,一个用户仅与同名的模式相联系,所以用户和模式是类似的。
用户的存取权利受用户安全域的设置所控制,在建立一个数据库的新用户或更改一已有用户时,安全管理员对用户安全域有下列决策:
是由数据库系统还是由操作系统维护用户授权信息。
设置用户的缺省表空间和临时表空间。
列出用户可存的表空间和在表空间中可使用空间份额。
设置用户资源限制的环境文件,该限制规定了用户可用的系统资源的总量。
规定用户具有的特权和角色,可存取相应的对象。
每一个用户有一个安全域,它是一组特性,可决定下列内容:
用户可用的特权和角色;
用户可用的表空间的份额;
用户的系统资源限制。
1) 用户鉴别:
为了防止非授权的数据库用户的使用,ORACLE提供二种确认方法
操作系统确认和相应的ORACLE数据库确认。
如果操作系统允许,ORACLE可使用操作系统所维护的信息来鉴定用户。
由操作系统鉴定用户的优点是:
用户可更方便地连接到ORACLE,不需要指定用户名和口令。
对用户授权的控制集中在操作系统,ORACLE不需要存储和管理用户口令。
然而用户名在数据库中仍然要维护。
在数据库中的用户名项和操作系统审计跟踪相对应。
ORACLE数据库方式的用户确认:
ORACLE利用存储在数据库中的信息可鉴定试图接到数据库的一用户,这种鉴别方法仅当操作系统不能用于数据库用户鉴别时才使用。
当用户使用一ORACLE数据库时执行用户鉴别。
每个用户在建立时有一个口令,用户口令在建立对数据库连接时使用,以防止对数据库非授权的使用。
用户的口令以密码的格式存储在数据库数据字典中,用户可随时修改其口令。
2) 用户的表空间设置和定额
关于表空间的使用有几种设置选择:
用户的缺省表空间;
用户的临时表空间;
数据库表空间的空间使用定额。
3) 用户资源限制和环境文件
用户可用的各种系统资源总量的限制是用户安全域的部分。
利用显式地设置资源限制;安全管理员可防止用户无控制地消耗宝贵的系统资源。
资源限制是由环境文件管理。
一个环境文件是命名的一组赋给用户的资源限制。
另外ORACLE为安全管理员在数据库级提供使能或使不能实施环境文件资源限制的选择。
ORACLE可限制几种类型的系统资源的使用,每种资源可在会话级、调用级或两者上控制。
在会话级:
每一次用户连接到一数据库,建立一会话。
每一个会话在执行SQL语句的计算机上耗费CPU时间和内存量进行限制。
对ORACLE的几种资源限制可在会话级上设置。
如果会话级资源限制被超过,当前语句被中止(回滚),并返回指明会话限制已达到的信息。
此时,当前事务中所有之前执行的语句不受影响,此时仅可作COMMIT、ROLLBACK或删除对数据库的连接等操作,进行其它操作都将出错。
在调用级:
在SQL语句执行时,处理该语句有好几步,为了防止过多地调用系统,ORACLE在调用级可设置几种资源限制。
如果调用级的资源限制被超过,语句处理被停止,该语句被回滚,并返回一错误。
然而当前事务的已执行所用语句不受影响,用户会话继续连接。
有下列资源限制:
为了防止无控制地使用CPU时间,ORACLE可限制每次ORACLE调用的CPU时间和在一次会话期间ORACLE调用所使用的CPU的时间,以0.01秒为单位。
为了防止过多的I/O,ORACLE可限制每次调用和每次会话的逻辑数据块读的数目。
ORACLE在会话级还提供其它几种资源限制。
每个用户的并行会话数的限制;
会话空闲时间的限制,如果一次会话的ORACLE调用之间时间达到该空闲时间,当前事务被回滚,会话被中止,会话资源返回给系统;
每次会话可消逝时间的限制,如果一次会话期间超过可消逝时间的限制,当前事务被回滚,会话被删除,该会话的资源被释放;
每次会话的专用SGA空间量的限制。
用户环境文件:
用户环境文件是指定资源限制的命名集,可赋给ORACLE数据库的有效的用户。
利用用户环境文件可容易地管理资源限制。
要使用用户环境文件,首先应将数据库中的用户分类,决定在数据库中全部用户类型需要多少种用户环境文件。
在建立环境文件之前,要决定每一种资源限制的值。
例如一类用户通常不执行大量逻辑数据块读,那就可将LOGICAL-READS-PER-SESSION和LOGICAL-READS-PER-CALL设置相应的值。
在许多情况中决定一用户的环境文件的合适资源限制的最好的方法是收集每种资源使用的历史信息。
2. 特权和角色1) 特权:
特权是执行一种特殊类型的SQL语句或存取另一用户的对象的权力。
有两类特权:
系统特权和对象特权。
系统特权:
是执行一处特殊动作或者在对象类型上执行一种特殊动作的权利。
ORACLE有60多种不同系统特权,每一种系统允许用户执行一种特殊的数据库操作或一类数据库操作.系统特权可授权给用户或角色,一般,系统特权全管理人员和应用开发人员,终端用户不需要这些相关功能.授权给一用户的系统特权并具有该系统特权授权给其他用户或角色.反之,可从那些被授权的用户或角色回收系统特权.
对象特权:
在指定的表、视图、序列、过程、函数或包上执行特殊动作的权利。
对于不同类型的对象,有不同类型的对象特权。
对于有些模式对象,如聚集、索引、触发器、数据库链没有相关的对象特权,它们由系统特权控制。
对于包含在某用户名的模式中的对象,该用户对这些对象自动地具有全部对象特权,即模式的持有者对模式中的对象具有全部对象特权。
这些对象的持有者可将这些对象上的任何对象特权可授权给其他用户。
如果被授者包含有GRANTOPTION授权,那么该被授者也可将其权利再授权给其他用户。
2) 角色:
为相关特权的命名组,可授权给用户和角色。
ORACEL利用角色更容易地进行特权管理。
有下列优点:
减少特权管理,不要显式地将同一特权组授权给几个用户,只需将这特权组授给角色,然后将角色授权给每一用户。
动态特权管理,如果一组特权需要改变,只需修改角色的特权,所有授给该角色的全部用户的安全域将自动地反映对角色所作的修改。
特权的选择可用性,授权给用户的角色可选择地使其使能(可用)或使不能(不可用)。
应用可知性,当一用户经一用户名执行应用时,该数据库应用可查询字典,将自动地选择使角色使能或不能。
专门的应用安全性,角色使用可由口令保护,应用可提供正确的口令使用权角色使能,达到专用的应用安全性。
因用户不知其口令,不能使角色使能。
一般,建立角色服务于两个目的:
为数据库应用管理特权和为用户组管理特权。
相应的角色称为应用角色和用户角色。
应用角色是授予的运行一数据库应用所需的全部特权。
一个应用角色可授给其它角色或指定用户。
一个应用可有几种不同角色,具有不同特权组的每一个角色在使用应用时可进行不同的数据存取。
用户角色是为具有公开特权需求的一组数据库用户而建立的。
用户特权管理是受应用角色或特权授权给用户角色所控制,然后将用户角色授权给相应的用户。
数据库角色包含下列功能:
一个角色可授予系统特权或对象特权。
一个角色可授权给其它角色,但不能循环授权。
任何角色可授权给任何数据库用户。
授权给一用户的每一角色可以是使能的或者使不能的。
一个用户的安全域仅包含当前对该用户使能的全部角色的特权。
一个间接授权角色(授权给另一角色的角色)对一用户可显式地使其能或使不能。
在一个数据库中,每一个角色名必须唯一。
角色名与用户不同,角色不包含在任何模式中,所以建立一角色的用户被删除时不影响该角色。
ORACLE为了提供与以前版本的兼容性,预定义下列角色:
CONNENT、RESOURCE、DBA、EXP-FULL-DATABASE和IMP-FULL-DATABASE。
3. 审计
审计是对选定的用户动作的监控和记录,通常用于:
审查可疑的活动。
例如:
数据被非授权用户所删除,此时安全管理员可决定对该数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。
监视和收集关于指定数据库活动的数据。
例如:
DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计数据。
ORACLE支持三种审计类型:
语句审计,对某种类型的SQL语句审计,不指定结构或对象。
特权审计,对执行相应动作的系统特权的使用审计。
对象审计,对一特殊模式对象上的指定语句的审计。
ORACLE所允许的审计选择限于下列方面:
审计语句的成功执行、不成功执行,或者其两者。
对每一用户会话审计语句执行一次或者对语句每次执行审计一次。
对全部用户或指定用户的活动的审计。
当数据库的审计是使能的,在语句执行阶段产生审计记录。
审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。
审计记录可存在数据字典表(称为审计记录)或操作系统审计记录中。
数据库审计记录是在SYS模式的AUD$表中。
二、 数据完整性
它是指数据的正确性和相容性。
数据的完整性是为了防止数据库存在不符合主义的数据,防止错误信息输入和输出,即数据要遵守由DBA或应用开发者所决定的一组预定义的规则。
ORACLE应用于关系数据库的表的数据完整性有下列类型:
在插入或修改表的行时允许不允许包含有空值的列,称为空与非空规则。
唯一列值规则,允许插入或修改的表行在该列上的值唯一。
引用完整性规则,同关系模型定义
用户对定义的规则,为复杂性完整性检查。
ORACLE允许定义和实施上述每一种类型的数据完整性规则,这些规则可用完整性约束和数据库触发器定义。
完整性约束,是对表的列定义一规则的说明性方法。
数据库触发器,是使用非说明方法实施完整性规则,利用数据库触发器(存储的数据库过程)可定义和实施任何类型的完整性规则。
heyongming42009-11-0118:
45:
49123.15.236.*
这是我的论文~~~~是有关数据库的~~
数据库技术概述
数据库技术是一门综合性的软件技术,是使用计算机进行各种信息管理的必备知识。
数据库技术是本世纪60年代开始兴起的一门信息管理自动化的新兴学科,是计算机科学中的一个重要分支。
随着计算机应用的不断发展,在计算机应用领域中,数据处理越来越占主导地位,数据库技术的应用也越来越广泛。
一、数据库的历史发展
数据库是数据管理的产物。
数据管理是数据库的核心任务,内容包括对数据的分类、组织、编码、储存、检索和维护。
随着计算机硬件和软件的发展,数据库技术也不断地发展。
从数据管理的角度看,数据库技术到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段。
1. 人工管理阶段
人工管理阶段是指计算机诞生的初期(即20世纪50年代后期之前),这个时期的计算机主要用于科学计算。
从硬件看,没有磁盘等直接存取的存储设备;从软件看,没有操作系统和管理数据的软件,数据处理方式是批处理。
这个时期数据管理的特点是:
1).数据不保存
该时期的计算机主要应用于科学计算,一般不需要将数据长期保存,只是在计算某一课题时将数据输入,用完后不保存原始数据,也不保存计算结果。
2).没有对数据进行管理的软件系统
程序员不仅要规定数据的逻辑结构,而且还要在程序中设计物理结构,包括存储结构、存取方法、输入输出方式等。
因此程序中存取数据的子程序随着存储的改变而改变,数据与程序不具有一致性。
3).没有文件的概念
数据的组织方式必须由程序员自行设计。
4).一组数据对应于一个程序,数据是面向应用的
即使两个程序用到相同的数据,也必须各自定义、各自组织,数据无法共享、无法相互利用和互相参照,从而导致程序和程序之间有大量重复的数据。
2. 文件系统阶段
文件系统阶段是指计算机不仅用于科学计算,而且还大量用于管理数据的阶段(从50年代后期到60年代中期)。
在硬件方面,外存储器有了磁盘、磁鼓等直接存取的存储设备。
在软件方面,操作系统中已经有了专门用于管理数据的软件,称为文件系统。
这个时期数据管理的特点是:
1).数据需要长期保存在外存上供反复使用
由于计算机大量用于数据处理,经常对文件进行查询、修改、插入和删除等操作,所以数据需要长期保留,以便于反复操作。
2).程序之间有了一定的独立性
操作系统提供了文件管理功能和访问文件的存取方法,程序和数据之间有了数据存取的接口,程序可以通过文件名和数据打交道,不必再寻找数据的物理存放位置,至此,数据有了物理结构和逻辑结构的区别,但此时程序和数据之间的独立性尚还不充分。
3).文件的形式已经多样化
由于已经有了直接存取的存储设备,文件也就不再局限于顺序文件,还有了索引文件、链表文件等,因而,对文件的访问可以是顺序访问,也可以是直接访问。
4).数据的存取基本上以记录为单位
可以看出,文件系统中的数据和程序虽然具有了一定的独立性,但还很不充分,每个文件仍然对应于一个应用程序,数据还是面向应用的。
要想对现有的数据再增加一些新的应用是很困难的,系统不易扩充,一旦数据的逻辑结构改变,必须修改应用程序。
并且,各个文件之间是孤立的,不能反映现实世界事物之间的内在联系,各个不同应用程序之间也不能共享相同的数据,从而造成数据冗余度大,并容易产生相同数据的不一致性。
3. 数据库系统阶段
数据库系统阶段是从60年代后期开始的。
在这一阶段中,数据库中的数据不再是面向某个应用或某个程序,而是面向整个企业(组织)或整个应用的。
数据库系统阶段的特点是:
1).采用复杂的结构化的数据模型
数据库系统不仅要描述数据本身,还要描述数据之间的联系。
这种联系是通过存取路径来实现的。
2).较高的数据独立性
数据和程序彼此独立,数据存储结构的变化尽量不影响用户程序的使用。
3).最低的冗余度
数据库系统中的重复数据被减少到最低程度,这样,在有限的存储空间内可以存放更多的数据并减少存取时间。
4).数据控制功能
数据库系统具有数据的安全性,以防止数据的丢失和被非法使用;具有数据的完整性,以保护数据的正确、有效和相容;具有数据的并发控制,避免并发程序之间的相互干扰;具有数据的恢复功能,在数据库被破坏或数据不可靠时,系统有能力把数据库恢复到最近某个时刻的正确状态。
综上所述,数据库可以被定义为:
一个存储起来互相关联的数据集合,它提供给多种用户共享并且有最小的冗余度和较高的数据独立性。
4. 三代数据库系统的发展
数据模型是数据库系统的核心。
按照数据模型发展的主线,数据库技术的形成过程和发展可从以下三个方面反映:
1).第一代数据库系统--层次和网状数据库管理系统
层次和网状数据库的代表产品是IBM公司在1969年研制出的层次模型数据库管理系统。
层次数据库是数据库系统的先驱,而网状数据库则是数据库概念、方法、技术的奠基。
2).第二代数据库系统--关系数据库管理系统(RDBMS)
1970年,IBM公司的研究员E.F.Codd在题为《大型共享数据库数据的关系模型》的论文中提出了数据库的关系模型,为关系数据库技术奠定了理论基础。
到了80年代,几乎所有新开发的数据库系统都是关系型的。
真正使得关系数据库技术实用化的关键人物是JamesGray。
Gray在解决如何保障数据的完整性、安全性、并发性以及数据库的故障恢复能力等重大技术问题方面发挥了关键作用。
关系数据库系统的出现,促进了数据库的小型化和普及化,使得在微型机上配置数据库系统成为可能。
3).新一代数据库技术的研究和发展
目前已从多方面发展了现行的数据库系统技术。
我们可以从数据模型、新技术内容、应用领域三个方面概括新一代数据库系统的发展。
(1)面向对象的方法和技术对数据库发展的影响最为深远
80年代,面向对象的方法和技术的出现,对计算机各个领域,包括程序设计语言、软件工程、信息系统设计以及计算机硬件设备等都产生了深远的影响,也给面临新挑战的数据库技术带来了新的机遇和希望。
数据库研究人员借鉴和吸收了面向对象的方法和技术,提出了面向对象的数据库模型(简称对象模型)。
当前有许多研究是建立在数据库已有的成果和技术上的,针对不同的应用,对传统的DBMS,主要是RDBMS进行不同层次上的扩充,例如建立对象关系(OR)模型和建立对象关系数据库(ORDB)。
(2)数据库技术与多学科技术的有机结合
数据库技术与多学科技术的有机结合是当前数据库发展的重要特征。
计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。
传统的数据库技术和其他计算机技术的结合、互相渗透,使数据库中新的技术内容层出不穷。
数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化。
建立和实现了一系列新型的数据库,如分布式数据库、并行数据库、演绎数据库、知识库、多媒体库、移动数据库等,它们共同构成了数据库大家族。
(3)面向专门应用领域的数据库技术的研究
为了适应数据库应用多元化的要求,在传统数据库基础上,结合各个专门应用领域的特点,研究适合该应用领域的数据库技术,如工程数据库、统计数据库、科学数据库、空间数据库、地理数据库、Web数据库等,这是当前数据库技术发展的又一重要特征。
同时,数据库系统结构也由主机/终端的集中式结构发展到网络环境的分布式结构,随后又发展成两层、三层或多层客户/服务器结构以及Internet环境下的浏览器/服务器和移动环境下的动态结构。
多种数据库结构满足了不同应用的需求,适应了不同的应用环境。
二、数据模型
1. 数据处理的抽象描述
不同的领域,数据的描述也有所不同。
实际生活中,有对现实世界的描述;理论研究中,有对符号化数据的描述;而在计算机内部,数据又有其特定的表示方法。
人们研究和处理数据的过程中,常常把数据的转换分为三个领域——现实世界,信息世界,机器世界,这三个世界间的转换过程,就是将客观现实的信息反映到计算机数据库中的过程。
1).现实世界(RealWorld)
客观存在的世界就是现实世界,它独立于人们的思想之外。
现实世界存在无数事物,每一个客观存在的事物可以看做是一个个体,个体有多项特征和属性。
比如,电视机就有价格,品牌,可视面积大小,是否彩色等特征。
而不同的人,只会关心其中的一部分属性,一定领域内的个体有着相同的特征。
2).信息世界(InformationWorld)
信息世界是现实世界在人们头脑中的反映,人的思维将现实世界的数据抽象化和概念化,并用文字符号表示出来,就形成了信息世界。
下面是人们在研究现实世界过程中常常用到的术语:
(1)实体(Entity)
客观存在且可以互相区别的事物。
如一名学生,一台电脑,一本书,一场聚会。
实体是信息世界的基本单位。
(2)属性(Attribute)
个体的某一特征称为属性,一个实体可以有多个属性,每一个属性都有其取值范围和取值类型。
(3)键(Key)
能在一个实体集中唯一标识一个实体的属性称为键,键可以只包含一个属性,也可以同时包含多个属性。
有多个键时,选择一个作为主键。
键中的属性称为主属性。
(4)联系(Relation)
实体之间互相作用,互相制约的关系称为实体集的联系。
实体之间的联系有三种:
一对一联系,一对多联系,多对多联系。
3).机器世界
机器世界又称数据世界,信息世界中的信息经过抽象和组织,以数据形式存贮在计算机中,就称为机器世界。
与信息世界一样,机器世界也有其常用的、用来描述数据的术语,这些术语与信息世界中的术语有着对应的关系。
(1)字段(Field)
字段,也称为数据项(Item),标记实体的一个属性叫做字段,它是可以命名的最小信息单位。
例如学生有学号、姓名、性别、出生日期等字段。
字段与信息世界的属性相对应。
(2)记录(Record)
记录是有一定逻辑关系的字段的组合。
它与信息世界中的实体相对应,一个记录可以描述一个实体。
例如一个学生的记录由“学号、姓名、性别、出生日期”等字段组成。
(3)文件(File)
文件是同一类记录的集合。
文件的存储形式有很多种,比如顺序文件、索引文件、直接文件、倒排文件等等。
4).三个世界的转换
由以上对三个世界的描述可以看到,从现实世界到信息世界再到机器世界,事务被一层层抽象,加工,符号化,逻辑化,而这个过程都是有一定联系的。
2. 数据模型
1).信息模型(概念模型)与E-R方法
为了把现实世界中的具体事物进行抽象,人们常常首先把现实世界抽象为信息世界,然后再将信息世界转化为机器世界。
在把现实世界抽象为信息世界的过程中,实际上是抽象出现实系