4数据库的安全性与完整性数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得重要关注的方面。数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。一般说来,对数据库的破坏来自以下4个方面:(1)非法用户非法用户是指那些未经授权而恶意访问、修改甚至破坏数据库的用户,包括那些超越权限来访问数据库的用户。一般说来,非法用户对数据库的危害是相当严重的。(2)非法数据非法数据是指那些不符合规定或语义要求的数据,一般由用户的误操作引起。(3)各种故障各种故障指的是各种硬件故障(如磁盘介质)、系统软件与应用软件的错误、用户的失误等。(4)多用户的并发访问数据库是共享资源,允许多个用户并发访问(ConcurrentAccess),由此会出现多个用户同时存取同一个数据的情况。如果对这种并发访问不加控制,各个用户就可能存取到不正确的数据,从而破坏数据库的一致性。针对以上4种对数据库破坏的可能情况,数据库管理系统(DBMS)核心已采取相应措施对数据库实施保护,具体如下:(1)利用权限机制,只允许有合法权限的用户存取所允许的数据,这就是本章节“数据库安全性”应解决的问题。(2)利用完整性约束,防止非法数据进入数据库,这是本章节“数据库完整性”应解决的问题。(3)提供故障恢复(Recovery)能力,以保证各种故障发生后,能将数据库中的数据从错误状态恢复到一致状态,此即本章节“故障恢复技术”的内容。(4)提供并发控制(ConcurrentControl)机制,控制多个用户对同一数据的并发操作,以保证多个用户并发访问的顺利进行,此即本章节“并发控制”的内容。4.1数据库安全性4.1.1数据库安全性问题的概述1.数据库安全问题的产生数据库的安全性是指在信息系统的不同层次保护数据库,防止未授权的数据访问,避免数据的泄漏、不合法的修改或对数据的破坏。安全性问题不是数据库系统所独有的,它来自各个方面,其中既有数据库本身的安全机制如用户认证、存取权限、视图隔离、跟踪与审查、数据加密、数据完整性控制、数据访问的并发控制、数据库的备份和恢复等方面,也涉及到计算机硬件系统、计算机网络系统、操作系统、组件、Web服务、客户端应用程序、网络浏览器等。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出,每一个方面产生的安全问题都可能导致数据库数据的泄露、意外修改、丢失等后果。例如,操作系统漏洞导致数据库数据泄漏。微软公司发布的安全公告声明了一个缓冲区溢出漏洞(),WindowsNT、Windows2000、Windows2003等操作系统都受到影响。有人针对该漏洞开发出了溢出程序,通过计算机网络可以对存在该漏洞的计算机进行攻击,并得到操作系统管理员权限。如果该计算机运行了数据库系统,则可轻易获取数据库系统数据。特别是MicrosoftSQLServer的用户认证是和Windows集成的,更容易导致数据泄漏或更严重的问题。又如,没有进行有效的用户权限控制引起的数据泄露。Browser/Server结构的网络环境下数据库或其他的两层或三层结构的数据库应用系统中,一些客户端应用程序总是使用数据库管理员权限与数据库服务器进行连接(如MicrosoftSQLServer的管理员SA),在客户端功能控制不合理的情况下,可能使操作人员访问到超出其访问权限的数据。在安全问题上,DBMS应与操作系统达到某种意向,理清关系,分工协作,以加强DBMS的安全性。数据库系统安全保护措施是否有效是数据库系统的主要指标之一。为了保护数据库,防止恶意的滥用,可以从低到高的五个级别上设置各种安全措施。(1)环境级:计算机系统的机房和设备应加以保护,防止有人进行物理破坏。(2)职员级:工作人员应清正廉洁,正确授予用户访问数据库的权限。(3)OS级:应防止未经授权的用户从OS处着手访问数据库。(4)网络级:由于大多数DBS都允许用户通过网络进行远程访问,因此网络软件内部的安全性至关重要。(5)DBS级:DBS的职责是检查用户的身份是否合法及使用数据...