1.防止非法数据访问
这是数据库安全最关键的需求之一。数据库管理系统必须根据用户或应用的授权来检查访问,以保证仅允许授权的用户访问数据库。数据库的访问控制要比操作系统中的文件控制复杂的多。首先,控制的对象有更细的粒度,如表、记录、属性等;其次数据库中的数据是语义相关的,所以用户可以不直接访问数据项而间接获取数据。
2.防止推导
推导指的是用户·通过授权访问的数据,经过推导得出机密信息,而按照安全策略,用户是无权访问该机密信息的。在统计数据库中需要防止用户从统计聚合信息推导得到原始个体信息,特别是统计数据库容易受到推导问腿影响。
3.保证数据库的完整性
该需求指的是保护数据库不受非授权的修改,以及不会因为病毒、系统中的错误等导致存储数据破坏。这种保护通过访问控制、备份/恢复以及一些专用的安全机制共同实现。
备份/恢复在数据库管理系统领域得到了深入的研究,它们的主要目标是在系统发生错误时保证数据库中数据的一致性。
4.保证数据的完整性
这个需求定位于在并发事务中保证数据库中数据的逻辑一致性。一般而言,数据库管理系统中的并发管理器子系统负责实现这部分需求。
5保证数据的语义完整性
这个问题主要是在修改数据时保证新值在一定的范围内,以确保逻辑上的完整性。对数据值的约束通过完整性约束来描述,可以针对数据库定义完整性约束(定义数据库处于正确的状态的条件),也可以针对变换定义完整性约束(修改数据库时需要验证的条件)。
6.审计和日志
为了保证数据库中数据的安全,一般要求数据库管理系统能够将所有的数据操作记录下来。这一功能要求系统保留日志文件,安全相关事件可以根据系统设置记录在日志文件中,以便事后调查和分析;追查入侵者或者发现系统的安全弱点。
审计和日志是有效的威慑和事后追查、分析的工具。与数据库中多种粒度的数据对应,审计和日志需要面对粒度问题。因为记录对一个细粒度对象(如一个记录的属性)的访问可能有用,但是考虑时间和代价,这样做可能非常不实用。
7.标识和认证
各种计算机系统的用户管理和使用方法非常类似。与其他系统一样,标识和认证也是数据库的第一道安全线。标识和认证是授权、审计等的前提条件。
8.机密数据管理
数据库中的数据可能部分是机密数据,也可能全部是机密文件(如军队的数据库),而有些数据库中的数据全部是公开的数据,同时保存机密数据和公开的数据的情况比较复杂。在很多情况下数据是机密的,数据本身是机密的;与其他数据组合时,与其他机密数据保存在用一个记录中。
对于同时保存机密和公开数据的数据而言,访问控制主要保证积机密数据的保密性,仅允许授权用户的访问。这些用户被赋予对机密数据进行一系列操作的权限,并且被禁止传播这些权限。此外,这些被授权访问机密文件的用户应该与普通用户一样可以访问·公开数据,但是不能相互干扰。另一种情况是用户·可以访问一组特定的机密数据,但是不能交叉访问。此外,还有一种情况是用户可以单独访问特定的机密数据结合,但是不能同时访问全部的数据。
9.多级保护
多级保护表示一个安全需求的集合,实现世界中很多应用要求将数据划分不同的保密级别。例如,军队需要将信息划分多个保密级别,而不是仅仅划分为公开和保密两部分。同一记录中·的不同风格字段可能划分为不同的保密级别,甚至同一字段的不同值都是不同的级别,在多级保护体系中,对不同数据赋予不同的保密级别,然后根据数据项的密级给访问该数据的操作赋予不同的级别。
在多级保护体系中,进一步的要求是研究如何赋予多数据项组成的集合的一个恰当的密级。数据的完整性和保密性是通过给予用户权限来实现的,用户只能访问它拥有的权限对应级别的数据。