首页 百科知识 数据库系统的安全要求

数据库系统的安全要求

时间:2022-06-17 百科知识 版权反馈
【摘要】:8.3.2 数据库系统的安全要求面对诸多的威胁,加上数据库系统自身的安全特点,对数据库的安全性就提出了诸多要求。另外,数据库系统还必须防范非人为的外力灾难。保证数据库的完整性是DBMS操作系统和计算系统管理者的责任。数据库的周期性备份可以减少由灾祸造成的损失,为了能在系统出错后重建数据库,DBMS必须维护对事故的记录。DBMS不应该将敏感数据泄露给未经批准的个人。

8.3.2 数据库系统的安全要求

面对诸多的威胁,加上数据库系统自身的安全特点,对数据库的安全性就提出了诸多要求。计算机安全性的三个方面:完整性、保密性和可用(获)性,与数据库管理系统都有关系。完整性既适用于数据库的个别元素也适用于整个数据库,所以,在数据库管理系统的设计中,完整性是主要的关心对象。保密性由于推理攻击而变成数据库的一大问题。最后,因为共享访问的需要是开发数据库的基础,所以可用性是重要的。但是可用性与保密性是相互冲突的,因此需要互相平衡。

表8-2从六方面研究数据库的安全性要求,其中,物理上的数据库完整性、逻辑上的数据库完整性、元素的完整性和可审计性属于完整性方面的要求;访问控制和用户认证是保密性方面的要求;可获性也就是可用性。

表8-2 数据库系统的安全性要求

1.数据库的完整性

数据库管理程序必须确保只有经批准的个人才能加以更新,这就意味着数据必须有访问控制权限。另外,数据库系统还必须防范非人为的外力灾难。

保证数据库的完整性是DBMS操作系统和计算系统管理者的责任。从操作系统和计算系统管理者的观点来看,数据库和DBMS分别是文件和程序。因此,整个数据库的保护是对系统上的所有文件进行周期性的备份。数据库的周期性备份可以减少由灾祸造成的损失,为了能在系统出错后重建数据库,DBMS必须维护对事故的记录。在出现系统失败的事故时,由数据库的备份开始重新处理记录之后的所有业务。

2.元素的完整性

数据库元素的完整性是指它们的正确性和准确性。由于用户在搜集数据计算结果和输入数值时可能会出现错误,所以DBMS必须帮助用户在输入时能发现错误,并在插入错误数据后能纠正它们。

DBMS用三种方式维护数据库中每个项目的完整性:

(1)字段检查在一个位置上的适当值,这种检查可以防止输入数据库时可能出现的简单错误。

(2)通过访问控制来维护数据库的完整性和一致性。一个数据库可能包含几种来源的数据。而在开发一个数据库之前,可能在许多表中存储了重复的数据,这就需要一种策略来解决可能发生的数据冲突问题。

(3)维护数据库的更改日志。更改日志是数据库每次改变的记录文件,日志包括原来的值和修改后的值。数据库管理员可以根据日志撤消任何错误的修改。

3.可审计性

在某些应用中,可能需要产生对数据库所有访问(读或写)的审计记录。这种记录可以协助维持数据的完整性,或者至少可以帮助在事后发现谁在影响以及何时影响过什么值。攻击者可能会以逐次递增的形式形成对被保护数据的访问,不是单用一次访问,而是用一组访问来揭示一些敏感的数据。在这种情况下,审计踪迹可以作为分析攻击者线索的依据。

审计粒度成为审计中的一个问题。数据库的审计踪迹必须包括对记录字段和元素一级的访问。对于大多数数据库应用,应要求有很详细的审计信息。

在某些情况下,可能访问了一个记录后,DBMS并没有把这个记录的真实情况告诉给用户,DBMS可能会告诉用户这个记录所有域的和或者不访问某些元素而直接确定它们的值。因此,所有直接访问过的记录的日志可能夸大也可能低估用户实际知道的值。

4.访问控制

数据库常常根据用户访问权限进行逻辑分割。如市场部可以得到销售数据,人事部门可以得到工资数据等。

数据库管理系统DBMS必须实施访问控制策略,指定哪些数据允许或者禁止被访问;指定谁访问哪些数据。这些数据可以是字段或记录,或者甚至是元素。DBMS批准某个用户或者程序有权读、改变、删除或附加一个值、增加或删除整个字段或记录,或者重新组织完全的数据库。

对数据库和操作系统的访问控制有着根本区别。事实上在数据库中更为复杂。因为数据库中的记录字段和元素是相互关联的,用户只能通过读某文件而确定该文件的内容,但却有可能通过读取数据库中的某一元素而确定数据库中的另一个元素。也就是说,用户可以通过推理的方法从某些数据的值得到另外一些数据值。

通过推理访问数据可能不需要有对安全目标的直接访问权。限制推理则意味着为防止可能的推理而禁止一些推理路径。通过限制访问来控制推理,也限制了无意访问未经批准的数据,同时也可能降低了数据库访问的效率。

操作系统和数据库的访问控制目标在规模上是不同的。有几百个文件的操作系统的访问控制表较之有数百个文件数据库的访问控制表要容易实现得多。

5.用户认证

DBMS要求进行严格的用户认证。一个DBMS可能要求用户传递指定的通行字和时间日期检查。这一认证是在操作系统完成的认证之外另加的。DBMS在操作系统之外作为一个应用程序被运行,这意味着它没有操作系统的可信赖路径,因此必须怀疑它所收到的任何数据,包括用户认证。因此,DBMS最好有自己的认证机制。

6.可用性

可用性是指当需要时能否存取所需的信息。当决定是否允许访问存取时,DBMS必须考虑数据的可获性、访问的可接受性和用户的认证特性。下面解释这三个因素:

(1)数据的可获性

首先,要访问的元素可能是不可访问的。例如,若一个用户在更新几个字段,则其他用户对这些字段的访问必须被暂时阻止。这样可以保证用户不会收到不准确的信息,当进行更新时,应保持用户与其他部分的一致性。不过有一点要注意,如果正在更新的用户在更新进行期间退出,其他用户则有可能会被永远阻止访问该记录。这种后遗症也是一个安全性问题,会出现拒绝服务的情况。

(2)访问的可接受性

记录的一个或多个值可能是敏感的而不能被用户访问。DBMS不应该将敏感数据泄露给未经批准的个人。但是判断什么是敏感的并不是那么简单。一个用户也许请求某些不包含敏感数据的记录,该用户的目的也许只是由非敏感的特殊字段推出需要的值。表8-3所示的数据库,一个用户可能请求FINES(罚款)为非“0”的学生的NAME(姓名)和DORM(宿舍),敏感字段FINES的确切值并未泄露。即使明确地给出敏感的值,数据库管理程序也可能拒绝访问这样的背景信息,它会提示用户这是无权知道的信息。另外,用户可能希望由非敏感数据导出敏感的统计值,例如,如果平均的资助值并不泄露个人的资助值,数据库管理程序是可以安全地返回这个平均值,然而,一个数据值的平均值却会泄露该值本身。

表8-3 学生个人信息表

(3)认证的准确性

为了加强安全性,数据库管理员可能允许用户只在某些时间段访问该数据库,比如在工作时间。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈