1 Access数据库的简介
Microsoft Office Access是Microsoft公司把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。Access数据库管理系统是Microsoft Office系列应用软件的一个重要组成部分。由于Access数据库管理系统具有界面友好、操作简单、接口灵活等优点,使之成为了许多中小型WEB应用系统的首选数据库。随着Access数据库管理系统的广泛应用,其在安全性方面的问题也暴露出来,其安全性比不上其他类型的数据库。Access数据库管理系统安全性的设计相对大型数据库来说是不完善的,所以,在实际应用的过程中需要对其安全漏洞引起高度重视,采取有效地解决策略来修补安全漏洞。
2 数据库安全定义及安全体系
1)数据库安全定义:数据库安全(Database Security)本身具有两个方面的含义。一方面指的是系统运行安全方面的,系统运行的安全受到影响就有可能导致系统无法正常运行,一些网络不法分子专门通过互联网来入侵其他用户计算机,使得计算机系统出现故障,损坏计算机系统的CPU;另一方面指的是计算机系统信息的安全,网络不法分子侵入用户系统,主要是为了窃取用户数据库中的重要信息或者破坏系统数据库内的重要信息。数据库系统的安全特性是针对数据而言的,主要包括数据安全性、数据独立性、数据完整性、故障恢复等方面的内容。
2)数据库安全体系:数据库系统可以划分为三个层次安全结构:网络系统级、宿主操作系统级和数据库管理系统级。对于网络系统级别来说,网络系统是数据库的第一个安全屏障,这个安全屏障面临着许多的威胁,例如,报文修改、特洛伊木马、欺骗、陷阱门等威胁,这些都有可能导致出现数据库系统安全性问题。对于宿主操作系统级别来说,操作系统对于数据库系统的安全运行至关重要,作为数据库系统的运行平台,操作系统安全策略对于保障计算机系统的安全非常重要。不同的操作系统和网络环境需要采取不同的安全管理策略,主要是对计算机用户的权限进行分配,以及保障服务器的安全,主要通过数据加密技术、数据存储的安全性、数据备份、数据传输的安全性等来保证数据的安全。对于数据库管理系统级别来说,数据库系统的安全性跟数据库管理系统有着十分密切的联系,数据库管理系统的安全机制越强大,数据库系统的安全性能就越高,数据库管理系统设定的安全机制能够确保在操作系统级别安全被突破的情况下保证数据的安全。数据库系统从以上三个方面构建了一套完整的安全体系。
3 Access数据库存在的安全性问题分析
Access数据库系统是最简单和最基础的数据库系统,它运用起来简单,方便,但是安全性能却不高,可以说是数据库系统里面最低的。那么Access数据库系统的安全风险都来自哪些方面呢?主要有以下四个方面:
1)存储隐患
存储隐患主要体现在数据库的存储路径的安全风险。在Access数据库的文件保存的文件名一般都带有后缀“.mdb”,一旦文件的保存路径被泄露,别人就能很轻易的被下载或者打开,因此在里面的重要信息就被透露出去了。对于一个公司而言,这样的数据库系统被保存在网站中,其他人就可以通过文件的通用格式下载到当地的机器里。
2)加密方式简单,易被破解
在Access数据库系统的文件保存的扩展名是mdb,而且是以单个文件形式存储的。而且,它的加密机制非常简单,它加密主要是访问加密,而且它的文件本身存在着该数据库的密码。数据库访问密码只能从ACCESS界面通过访问输入密码的方式对数据库系统的内容进行安全保护。这就类似电脑的访问密码保护,而我们知道,这种密码保护是很容易被破解的。而且在Access数据库系统内容访问中,是可以使用第三方软件或其他手段打开的。
3)默认权限引发的安全漏洞
这类安全风险主要是指Access系统的缺省用户。微软系统的Admin账户的用户ID是一个固定的值,因此所有的Access系统都是同一个用户。所以当一个用户在网络文件系统级别上获得你的数据库系统的用户权,就能随意操控你的数据库。也就是说,任何人都能获得你的数据库系统工作的管理员账户,并具有访问权限。如此就显而易见了,一个没有自己使用证明的东西,何来安全之言。
4)平台上的漏洞
这种就是Access系统本身存在的漏洞,因此这种情况下的任何安全措施都是存在安全隐患的。操作系统的漏洞和安装在数据库服务系统器上的其他服务的漏洞就有可能导致没有经过授权的访问、数据破坏或拒绝服务等。这就是本身就是亡羊补牢,为时已晚的事情,再在这种状况下进行安全保护措施肯定是无法完善的。
4 Access数据库安全性问题的解决策略
1)通过编程改进Access数据库的加密算法
可以在VB中设置Access数据库的密码,设置Access数据库密码之前要先设置对Microsoft ADO Ext 2.5for DDL and Security库的引用,通过ALTER DATABASE PASSWORD NewPassword OldPassword语法来实现对Microsoft ADO Ext 2.5for DDL and Security库的引用。在设置或修改Access数据库密码时,一般采用ALTER DATABASE关键词。如果是第一次对Access数据库的密码进行设置,则需要使用NULL 关键词来充当 ALTER DATABASE语句中的OldPassword参数,具体的代码实现如下:
Dim ObjConn As ADODB;Connection
Dim strSetPassword As Stiring’ 创建SQL串以初始化一个数据库密码
trSetPassword=”ALTER DATABASE PASS
WORD NewPassword NULL;”
Set objConn=New ADODB,Connection’设置数据库的打开方式为独占
ObjConn.Mode=adModeShareExclusive’ 打开数据库,path为数据库的路径
ObjConn.Open=”Provide=Microsoft.Jet.OL
EDB.4.0;DateSource=Path;”’ 执行SQL语句设置数据库密码
ObjConn.Execute(strSetPassword)
2)消除由Admin用户引发的漏洞
为了消除Access数据库中由Admin用户引发的安全漏洞,可以通过将Admin用户对Access数据库的所有权进行屏蔽来实现。首先,需要增加一个与Admin用户相等的新用户到Admins用户组,例如,可以添加新用户Customer,然后通过Custom
er用户登录到Access数据库,将Admin用户从Admins用户组中移除,对Admin用户的所有权限进行屏蔽,让Admin用户成为一个普通用户,这样的话,网络不法分子就无法利用Access数据库中的Admin用户来获取信息了,Access数据库中的系统管理员就变成了Customer用户,从而保证Access数据库所有用户的安全。
3)改进数据库的加密机制
对Access数据库的加密机制进行改进需要通过编程来对其加密算法进行改进。该文提供两种改进Access数据库的加密算法,分别为随机加密算法和RSA算法。随机加密算法的原理就是利用随机函数的随机数序列与数据进行异或及相关运算,确保加密所用的数据是随机的而且不重复,这样就能够保证实现“一次一密”的数据加密,从而增强Access数据库中数据的安全性。RSA算法是非常优秀的加密算法,利用数论中的“求两个大素数之积很容易,但是很难将具有大素数因子的合数进行分解”,通过该理论就可以保证Access数据库的密码难以被破解,提高其安全性能。
4)提高平台的安全性
为了提高平台的安全性,要尽量使用安全性能较高的操作系统,确保在操作系统级别不出现安全漏洞,对于系统提示的安全漏洞要及时补救,及时更新补丁来增强操作系统的安全性。同时,操作系统内还需要安高效可靠地杀毒软件,定期对计算机进行体检,定期对病毒库进行更新,从而确保系统不受恶意性病毒的侵害,保证操作系统能够安全运行。另外,还要加强对客户端的防护,要防止恶意软件或病毒通过客户端来攻击主机,采用有效地防护软件集中保护主机系统及重要数据。对于网络系统级别的安全防护,一定要引起高度的重视,恶意软件或病毒一般通过互联网或局域网进行传播,所以必须保证入网端的安全性能,确保Access数据库的第一道安全屏障不被破坏。
5 结束语
随着Access数据库的广泛应用,在带给人们极大方便的同时,其存在的安全漏洞仍需要引起高度的重视,通过科学有效的安全策略来解决Access数据库的安全问题是信息安全领域研究的热点之一。在实际应用的过程中,只要采取有效地安全防护,Access数据库仍然是一个非常优秀的数据库管理系统。
参考文献:
[1] 朱良根,雷振甲,张玉清.数据库安全技术研究[J].计算机应用研究, 2004, 21(9).
[2] 廖启亮.Access 数据库加密系统安全性剖析及改进策略[J].中国安全科学学报,2005(5) .
[3] 荣钦科技. Access 2007 数据库原理与技术[M].北京:清华大学出版社,2009.
[4] 巴尔特,谢晖,许伟. Access 2007开发指南[M].北 京:人民邮电出版社,2008.
[5] 曾涛,黄净.Access 数据库的安全机制、隐患及改进策略[J].大众科技,2006(7).
[6] 郭丽. Access 数据库的安全与防范[M].北京:清华大学出版社,2006.