浅谈数据库系统的数据安全
2009-07-05王雅峰
王雅峰
摘要本文就如何有效地保证数据库系统的安全,对数据库系统的安全机制展开讨论。
关键词数据库系统安全机制加密
中图分类号:TP3文献标识码:A
数据库的应用已深入到社会的各个领域,数据库系统也承载着各类信息,其安全性就不言而喻了,关系到用户的荣辱成败。有关篡改数据、窃取数据等安全问题,越来越引起人们的高度重视,也成为重要的研究课题之一。本文就如何有效地保证数据库系统的安全,对数据库系统的安全机制展开讨论。
1 数据库安全概述
1.1 概念
数据库的安全指数据库中的数据不允许未经授权就被访问或修改,防止造成严重的数据丢失。有价值的数据资源都存放在数据库中,数据库是网络系统的核心部分。
1.2 数据库安全系统特性
(1)数据独立性。数据库系统的数据独立性可分为物理独立性和逻辑独立性,数据应独立于应用程序之外。(2)数据安全性。(3)数据的完整性。数据完整性包括数据的正确性、有效性和一致性。(4)并发控制。当一个用户正在修改数据时,另一个或几个用户也要读取该数据,但此时新的数据还在修改中,没有存入到数据库里,所以其他用户读出的数据就是错误的。因此就要采用并发操作来避免这种错误的发生,以确保数据的正确性和完整性。(5)故障恢复。当数据库系统运行时,会出现物理或逻辑上的错误,系统应能尽快排除故障,恢复系统的正常运行。
2 数据库安全的威胁
对数据库安全构成的威胁主要以下几种情况:非法篡改数据。指未经授权非法修改数据库中的数据,使原有数据失去真实性;数据丢失。指数据库中的数据真正丢失了,无法恢复。如:数据库部分或全部被删除或移走;利用黑客技术窃取机密数据。指对机密数据采用复制等手段取走,如:商业间谍、窃取国家机密的间谍等人采取的非法手段;数据库的故障。指从保护安全的角度出发,数据库系统中会发生事务内部的故障、系统故障、介质故障和计算机病毒与黑客等故障类型。
3 数据库系统的安全机制
数据库系统安全机制指实现数据库的各种安全策略的功能的有效集合,以此实现保护数据库系统安全的目标。目前,对用户的标识与鉴别、存取控制、数据库加密及备份与恢复等技术研究取得不少进展。
3.1 用户标识与鉴别机制
标识机制必须保证标识的惟一性,惟一标识进入系统的每个用户的身份。鉴别指系统检验用户的身份证明,看身份是否具有合法性。标识和鉴别机制保证只有合法用户才能存取系统中的资源。由于数据库用户安全等级不同,所以分配给他们的权限也不一样,数据库系统必须建立严格的用户认证机制。随着标识与鉴别技术的发展,有关实体认证的新技术在数据库系统安全中得到新的应用。目前,常用的方法有数字证书认证、智能卡认证和个人特征识别等技术。
3.2 访问控制机制
访问控制机制确保用户对数据库只允许经过授权的相关操作。
传统的访问控制机制有两种,即自主存取控制和强制存取控制。自主存取控制访问控制基于访问者和对象的身份;强制存取控制对于不同类型的信息采取不同层次的安全策略,对不同类型的数据来进行访问授权。与自主存取控制相比,强制存取控制机制比较严格。
3.3 对数据库中的数据加密
数据库的数据安全既包括在传输过程中采用加密保护措施和控制非法访问,还包括对敏感数据的加密保护措施。利用操作系统的漏洞窃取数据库文件,或者篡改数据库文件内容,是黑客常用的技术手段。另外,数据库管理员不受制约任意访问所有类型的数据,超出职责范围,造成数据外泄的安全隐患。用户可以用自己的密钥加密,而数据库管理员无权访问,也无法进行正常解密,从而实现保护用户的个人信息。
数据加密的核心是加密算法,一个好的加密算法可以很好地产生加密效果。窃密者很难通过对密文分析获得解密,从而达到保护数据的目的。常用的加密算法有对称密钥算法和非对称密钥算法。对称密钥算法的特点:解密密钥和加密密钥相同,或解密密钥由加密密钥推出。非对称密钥算法特点:解密密钥不同于加密密钥;加密密钥公开,解密密钥是用户的私有密钥。公开密钥算法有RSA等常用算法,目前还没有公认的专门针对数据库加密的加密算法,一般根据数据库特点选择现有的加密算法对数据库加密。但是,对数据库加密也有一定的局限性:加密技术一定程度保证了数据的安全,但也给数据库系统的可用性带来了影响。如:系统运行效率受到一定程度的影响;难实现对数据完整性约束的定义;SQL函数受到应用制约;密文容易引起攻击者的关注和破坏,造成新的不安全因素。总之,数据库加密作为安全保护数据的有力手段,将得到越来越多的重视。但是也会面临很多的实际挑战。
3.4 数据库的数据备份
数据库备份的常用方法有冷备份、热备份和逻辑备份三种。
冷备份指关闭数据库系统,在系统无人使用的时候进行备份。这种方法在保持数据的完整性方面是最好的一种。
热备份指数据库正在运行时所进行的备份。数据库在热备份时要依赖系统的日志文件,日志文件需要将进行数据更新的指令“堆起来”,并不进行真正的物理更新,数据库被完整地备份下来。备份结束后,系统再按照被日志文件“堆起来”的指令对数据库进行真正的物理更新。所以,被备份的数据保持了数据一致性状态。
逻辑备份指使用软件技术从数据库中读取数据,将结果写入一个输出文件中。该输出文件只是表中所有数据的映像而已,所以逻辑备份文件只能用来对数据库进行逻辑恢复,而不能进行物理恢复。逻辑备份一般用于增量备份,即备份那些在上次备份以后修改的增加数据。
3.5 数据库的数据恢复
数据恢复指系统发生故障,磁盘损坏或数据库崩溃时,利用一定的技术手段,如通过转储或卸载的备份重新安装和恢复数据库中数据,把数据库恢复到原来状态的技术。基本原理是利用“冗余”进行数据库恢复。恢复技术一般可分为:单纯以备份为基础的恢复技术;以备份和运行日志为基础,把数据库中的数据周期性地复制或转储到外存储器中,需要时加以恢复的技术。
数据库恢复技术一般有四种策略:基于备份数据的恢复;基于运行日志文件的恢复;易地更新恢复技术;基于镜像数据库的数据恢复。
3.5.1 基于备份数据的恢复
基于备份数据的恢复指周期性地备份数据库中的数据。当数据库失效时,取最近一次的数据库备份来恢复数据库,把备份数据拷贝到原位置上。数据库只能恢复到最近一次备份的状态,最近备份到故障产生时的所有数据更新将丢失。数据备份的周期越长,丢失的更新数据越多。
3.5.2 基于运行日志文件的恢复
运行日志文件记录对数据库的每一次更新。当系统突然失效,导致事务中断时,可重新装入数据库的副本,恢复到上一次备份时的数据库状态。然后系统自动扫描日志文件,将故障发生前所有提交的事务放到重做队列,将未提交的事务放到撤销队列执行,这样就把数据库恢复到故障发生前某一时刻的数据一致性状态。当数据库遇到硬盘故障、病毒破坏等问题时,重装转储后备数据库副本,然后运行日志文件,恢复数据,重建数据库。
3.5.3 易地更新恢复技术
更新数据时,旧页保留不变,将新内容写入新的页。同时,页表指针从旧页指向新页,更新页表的指针。旧页实际上起到前像的作用。由于存储介质可能发生故障,后像还是必须的。
3.5.4 基于镜像数据库的数据恢复
镜像数据库指在另一个磁盘上复制数据库作为实时副本。当主数据库更新时,数据库管理系统自动地把更新数据复制到镜像数据中,始终保持镜像数据与主数据的一致性。当主数据发生故障时,由镜像磁盘代替,提供数据库的数据支持,同时自动利用镜像磁盘数据进行数据库恢复。镜像策略可以大大提高数据库的可靠性,但通过复制数据,频繁的复制会降低计算机系统的运行效率。为了两者兼顾,可选择性地镜像关键数据。
总之,数据库系统的安全关系到用户的切身利益。我们必须高度重视数据库的安全,学习相关技术,做好数据库安全机制工作。