前言
数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。
当前互联网+与大数据,一切都建立在数据库之上,以数据说话,首先需要聚集数据、分析数据和管理数据,数据库技术已成为各种计算机系统的核心技术。数据库相关知识也已成为每个人必须掌握的知识。
数据库安全性与完整性
一、数据库安全性概述
数据库的一大特点是数据可以共享。数据共享必然带来数据库的安全性问题,数据库系统中的数据共享不能是无条件的共享。
数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
1.1 安全模型
在一般计算机系统中,安全措施往往是一级一级层层设置的
在这个安全模型中,用户要求进入计算机时,系统首先根据输入的用户标识进行用户身份鉴定,只有合法用户才准许进入计算机系统。对已进入系统的用户,DBMS还要设置很多访问限制,例如DBMS级访问控制主要有自由存取控制(Discretionary Access Control,简称DAC)和强制存取控制方法(Mandatory Access Control,简称MAC),并只允许用户进行合法操作。操作系统一级也有自己的保护措施,它主要是基于用户访问权限的访问控制。数据最后还可以以密码形式存储到数据库中。
1.2 安全层次简介
在安全问题上,DBMS应与操作系统达到某种意向,理清关系,分工协作,以加强DBMS的安全性。数据库系统安全保护措施是否有效是数据库系统的主要指标之一。主要包括以下几个层次的安全措施:
- 数据库系统层次
- 操作系统层次
- 网络层次
- 物理层次
- 人员层次
1.3 安全标准简介
1.3.1 TCSEC标准
TCSEC是指1985年美国国防部正式颁布的《DoD可信计算机系统评估准则》。在TCSEC中,美国国防部按处理信息的等级和应采用的响应措施,将计算机安全从高到低分为:A、B、C、D 四类八个级别,共27条评估准则。随着安全等级的提高,系统的可信度随之增加,风险逐渐减少。
1.3.2 CC(Common Criteria, CC)标准
国际《信息技术安全性评估通用准则》(简称为《通用准则》,CC)是北美和欧盟联合以开发一个统一的国际互认的安全标准的结果,是在美国、加拿大、欧洲等国家和地区分别自行推出的评估标准及具体实践的基础上,通过相互间的总结和互补发展起来的。
1.3.3 我国的信息安全评估标准
我国在信息系统安全的研究与应用方面与其他先进国家相比有一定的差距,但近年来,国内的研究人员已经在安全操作系统、安全数据库、安全网关、防火墙、入侵检测系统等方面做了许多工作,1999年发布的国家强制性标准《计算机信息系统安全保护等级划分准则》(GB17859-1999)为安全产品的研制提供了技术支持,也为安全系统的建设和管理提供了技术指导。该标准是我国计算机信息系统安全保护等级系列标准的第一部分,其他相关应用指南、评估准则等正在建设之中,该标准的制定参照了美国的TCSEC。
二、数据库完整性
2.1 什么是数据库完整性?
数据库的安全性和完整性是数据库安全保护的两个不同的方面。数据库的安全性保护数据库以防止不合法用户故意造成的破坏,数据库的完整性保护数据库以防止合法用户无意中造成的破坏。从数据库的安全保护角度来讲,完整性和安全性是密切相关的。
数据库的完整性的基本含义是指数据库中数据的正确性、有效性和相容性,其主要目的是防止错误的数据进入数据库。正确性是指数据的合法性,例如数值型数据只能含有数字而不能含有字母。有效性是指数据是否属于所定义域的有效范围。相容性是指表示同一事实的两个数据应当一致,不一致即是不相容。
2.2 完整性约束条件
SQL中使用了一系列的概念来描述完整性,包括实体完整性、参照完整性和用户定义完整性。这些完整性一般由SQL的DDL语句来实现,它们作为模式的一部分存入数据字典中。
一般一条完整性规则可以用一个五元组(D,O,A,C,P)来表示。其中:
- D(Data)表示约束作用的对象。
- O(Operation)触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查。
- A(Assertion)表示数据对象必须满足的断言或语义约束,这是规则的主体。
- C(Condition)选择A作用的数据对象值的谓词。
- P(Procedure)违反完整性规则时触发的过程。
2.3 完整性控制机制
DBMS必须提供一种机制来检查数据库中数据的完整性,看其是否满足语义规定的条件,这种机制称为“完整性检查”。为此,数据库管理系统的完整性控制机制应具有三个方面的功能,来防止合法用户在使用数据库时,向数据库注入不合法或不合语义的数据:
- 定义功能,提供定义完整性约束条件的机制。
- 验证功能,检查用户发出的操作请求是否违背了完整性约束条件。
- 处理功能,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。