Access数据库系统安全性分析及其防范对策

时间:2022-09-07 08:51:47

Access数据库系统安全性分析及其防范对策

摘要:数据库系统作为信息的聚集体,其安全性至关重要,如何有效地保证数据库系统的安全,已经成为业界人士探索研究的重要课题之一。本文分析了access数据库系统常见的安全漏洞,并提出了防范对策,便于读者在实际应用中能够避免这些问题。

关键词:access数据库 漏洞 防范

0 引言

access数据库是一个桌面关系型数据库,对于一些信息量较少的系统,选用access数据库,使得编程、使用、二嵌开发都比较容易。对于桌面型的数据库应用来说,access数据库的安全机制已经可以满足要求,但从根本上来说,access数据库的安全性设计是不完善的,我们需要详细分析数据库的安全漏洞,提出防范对策。

1 access数据库系统存在的漏洞

1.1 access数据库的解密隐患 由于access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行异或来形成一个加密串,并将其存储在*.mdb文件中从地址“&h42”开始的区域内。由于异或操作的特点是经过两次异或就恢复原值,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,便可轻松得到access数据库的密码。基于这种原理,可以很容易地编制出解密程序。

1.2 由admin用户引发的安全漏洞 admin用户是access系统的缺省用户,除非系统在安装后已经重新链接到了某个新的工作组安全系统上,否则将以默认的admin用户登录access。而微软将标记admin帐户的用户id号设成了一个固定值,这就意味着全世界的access系统的admin用户在access中都是同一个用户。如果一个未联入你的工作组安全系统的用户在网络文件系统级别上获得了你的数据库系统文件的admin权限,他将以admin用户的身份拥有对该数据库系统的所有权限,而access本身建立起来的第二级安全机制将不起任何作用,这种情况极易发生。工作组用户只要在他的计算机上重新安装一次access软件,他将会轻而易举地避开你设置的安全防护,做为默认的admin用户登陆并操作工作组中任何数据库系统。

1.3 工作组信息文件带来的安全隐患 access有一个默认名为system.mdw的工作组信息文件,该文件存放了access数据库的全部安全信息,包括用户账号和组账号。需注意的是,该system.mdw工作组信息文件是不安全的。因为在安装access的同时,安装程序自动将默认的工作组定义在其创建的工作组信息文件中。在用户还没有使用“工具组管理器”指定其他的工作组信息文件之前,再次启动access时,都使用默认的工作组信息文件。默认状态下原system.mdw工作组信息文件之所以不安全是因为它的工作组id是空白的,任何人都可以获得该工作组信息文件定义的管理员账号,具有访问数据库的各种权限,安全隐患极大。

2 access数据库系统安全漏洞的防范

2.1 通过编程改进access数据库的加密算法 这里介绍一种在vb中设置access密码的解决方案,用关键字alter database设置、修改数据库密码。使用该方法前,先设置对microsoft ado ext 2.5 for ddl and security库的引用,具体语法是:alter database passw0rd newpassword oldpassword

第一次设置数据库密码时,使用null关键字作为al-ter database语句中的oldpassword参数,其代码如下:

dim objconn as adodb.connection

dim strsetpassword as string′创建sql串以初始化一个数据库密码

strsetpassword =″alter database password newpassword null;″

set objconn=new adodb.connection′设置数据库的打开方式为独占

objconn.mode=admodeshareexclusive′打开数据库,path为数据库的路径

objconn.open="provider=microsoft.jet.oledb.4.0;datasource=path;″′执行sql语句设置数据库密码

objconn.execute(strsetpassword)

修改数据库密码时,首先要用旧密码登录数据库,然后再更改密码。其代码如下:

objconn.mode=admodeshareexclusive

objconn.provider=″microsoft.jet.oledb.4.0″

objconn.properties(″jet oledb:database password″)=″oldpassword″

objconn.open″dalasource=path″′修改密码

straltertpasswod =″alter database passw0rd newpassword oldpassword;″

objconn.execute(stralterpassword)

删除数据库密码操作类似于修改密码过程,只需使用null关键字作为alter database语句的newpassword参数即可。

2.2 消除由admin用户引发的漏洞 解决的基本思路是屏蔽admin用户对数据库的所有权限。首先,在admin用户组中增加一个新的与admin用户等同的新用户(如/fazhan/">发展进步,对于数据库安全防范技术的研究也将永无止境。本文总结分析了与实际使用密切相关的access数据库系统安全漏洞,并提出了一定的防范对策,对于实践使用有一定的针对性和指导意义,在具体实施时,应根据具体情况、环境和需求,因地制宜进行分析,采取相应有效措施保护数据库系统乃至整个网络系统的安全。

参考文献:

[1]刘丽琳.浅析access数据库系统的安全隐患及防范措施[j].和田师范专科学校学报.2007.(01):6-8.

[2]萨师煊.数据库系统概论.高等教育出版社.2003.

[3]郭丽.access数据库的安全与防范[m].北京:清华大学出版社.2006.

上一篇:基于Web的数据挖掘在电子商务中的研究与应用 下一篇:软交换的网络结构及其安全方案探讨