admin 管理员组

文章数量: 1184232


2024年5月18日发(作者:登录界面设计的要求是什么)

维普资讯

2006年第7期 

(总第93期) 

大众科技 

DA ZH0NG KE J 

No.7,2006 

(Cumulatively No.93) 

Access数据库的安全机制、隐患及改进策略 

曾涛 ,黄净 

(1.湖北财税职业学院;2、武汉市公交集团,湖北武汉430064) 

【摘 要]Access数据库作为桌面数据库系统,因其操作便捷、界面友好等优点而拥有大批用户,但它也存在着不容忽视的安 

全问题。文章剖析了ACCeSS数据库采用的安全机制及存在的问题,提出了增强安全、消除隐患的方法。 

【关键词】Access;数据库;安全机制 

【中图分类号】TP309 【文献标识码】A 【文章编号】1008—1151(2006)07—0102—02 

Access是一款适合中小型企业使用的数据库系统,由于 数据库进行了压缩,其结果既保证了VB代码能够运行,也使 

MDE数据库可与MDB数据库一样运行,而且数据库的大小 

因删除源代码和压缩数据库而得以减小。 

第五,可设置用户级安全机制。用户级安全机制通过设置 

它高效、经济、实用,受到广大使用者的青睐。但是,它的加密 

系统一直是人们所关心的问题。就以Access97为例,其数据库 

文件的密码最多能设置14位,存放于这个文件头部第66个 

字节至第79个字节的固定序列,解密者只需要生成一个空白 

密码的MDB文件,把上述位置的14个字节的内容即MDB的 

公用密钥拷贝下来,覆盖到加密的MDB文件这个对应的位 

置.密码就完全消除了。在Office XP下,Access数据库的安全 

用户密码和权限.限制用户对数据库及其对象的访问,并建立 

对敏感数据和对象的不同访问级别 用户级安全机制使用扩 

展名为.MDW的工作组信息文件来保存信息,一个工作组信息 

文件定义一个工作纽,用于存储用户的账号信息,包括账户 

名、个人ID、密码和所属的组,以及组与用户访问数据库中对 

象的权限 

机制已经更为完善。除了对数据库设置密码保护,对数据库进 

行压缩.还可以使用用户级的安全机制,在用户级别上控制对 

数据库的访问。 

对于桌面上的数据库管理应用来说,Access数据库的安 

全机制已经可以满足使用要求了,但从根本上来说,Access数 

据库的安全性设计是不完善的。 

Access XP数据库的安全机制 

为了避免应用程序及其数据遭到意外或故意地修改或破 

坏.Access XP提供了一系列安全保护措施: 

二、Access数据库存在的安全漏洞和隐患 

(一)数据库加密机制简单,易于破解 

Access数据库系统通过将用户输入的密码与某一固定密 

第一,可设置数据库访问密码。数据库访问密码是指为打 

开数据库(.MDB)而设置的密码,它是一种保护Access数据库 

的简便方法。设置密码后,每次打开数据库时都将显示要求输 

入密码的对话框.只有键人了正确的密码才能打开数据库。 

钥进行异或操作来形成一个加密串,并将其存锗在MDB文件 

中一段特定的地址区域内。由于异或操作的特点是“经过两次 

第二.可对数据库进行加密。数据库访问密码仪提供从Ac. 

cess界面进入数据库的安全保护.但不能防止使用其他手段来 

打开数据库文件。因此,常利用数据库加密作为对数据库密码 

等安全机制的补充。数据库加密通过压缩数据库文件来实现, 

异或就恢复原值”,因此,用这一密钥与 .mdb文件中的加密 

串进行第二次异或操作,就可以得到数据库的密码。又如本文 

开头所述,在AcCess97中,人们用密码覆盖的方法也可以轻易 

解除密码.Access2000的加密系统进行了较大的改进,它的密 

压缩的唰时对数据库文件起到安全保护的作用。压缩后的数 

据库难以州一般程序或字处理器等软件工具对其解密。但对 

数据库加密并不限制用户访问对象。苫数据库未设置访问密 

钥是按日期随机生成的,也就是说,不 的时间产生的MDB 

文件.其密钥是不同的.很难正确获取破解要解密的MDB文 

件的密钥,对于大多数用户,可以说是较为牢固了,因为在用 

码.尽管用数据库加密方法压缩了数据库文件.人们仍可在 

Access窗n打开该数据库.对数据库中的对象拥有完全的访 

问权 

第一三、可设置VBA工程密码..Access可通过为VBA工程 

户访『口】数据库的同时.加密系统还金分析散布在文件各处的 

校验码,俭验密码是否有被非法改动,如果用密码覆盖的方法 

破解它,只会破坏该数据库。然而,Access2000还是把加密的 

懈码字串放在以第66字节开始的艾件区域内,该密码存储在 

史件头部的方式仍然是不保险的:Access2000可以让用户设 

定最多20位的密码,其密码区域不是连续存储的,而是隔位 

放置密码串,所以.密码区域有40 字 的长度,40位的字节 

K度内,有用的只有20个字节,冉从这20个字节人手分析会 

设置密码来保护应用程序的代码。这种衔码一旦设置,则打开 

VISUAL BASIC编辑器窗口后,只有键人了正确的密码,VBA 

代码才能告看或修改,但并不影响VBA代码的运行。 

第四.叮将数据库保存为MDE文件:这种方法既能保护 

VBA代码.又能保护窗体和报表。在生成MDE文件时,Access 

在编泽了所有模块后.随即删除了所有可编辑的源代码,并对 

发现.其中的l0个字节的密钥是固定的,它仃】不是按日期随 

机生成的,所以. 一些破解软件咀,fl『以轻易地获取奇数位 

【收稿日期l2006—03—16 

【作者简介】曾涛(1970一),湖北财税职业学院讲师,研究方向:财税信息化;黄净(1973一),武汉市公交集团会计师,研究方 

向:财务会计。 

l02- 

维普资讯

的密码.最后,只剩下.10个字节的密码,对于非法的用户来 

说,穷举法破解也不是太难,只是时间的问题了。 

(二)工作组信息文件带来安全隐患 

Access2000有一个默认名为system.mdw的工作组信息文 

件,该文件存放了Access数据库的全部安全信息,包括用户账 

号和组账号。需要注意的是,该System.mdw工作组信息文件 

是不安全的。因为在安装Access的同时,安装程序自动将默认 

的工作组定义在其创建的工作组信息文件中。在用户还没有 

使用”工具组管理器”指定其他的工作组信息文件之前,再次 

启动Access时.都使用默认的工作组信息文件。默认状态下原 

System.mdw工作组信息文件之所以不安全.是因为它的工作 

组ID是空白的,任何人都可以获得该工作组信息文件定义的 

管理员账号,具有访问数据库的各种权限,这对数据库来讲是 

很不安全的。 

(三)管理员用户引发安全漏洞 

“管理员”用户是Access系统的缺省用户,也就是说,Ac. 

cess系统将以默认的“管理员”用户登录Access,而微软将其 

用于标记该“管理员”账户的用户1D号设成了一个固定值.这 

就意味着全世界的Access系统的“管理员”用户在Access中 

都是同一个用户,这样。问题就出现了——如果一个未联入你 

的工作组安全系统的用户在网络文件系统级别上可以获得对 

你的数据库系统文件的管理权.他将以“管理员”用户的身份 

拥有对该数据库系统的所有权利!由Access本身建立起来的 

第二级安全机制将不起任何作用。这种情况很容易发生一工 

作组用户只要在他的计算机上重新安装一次Access软件,他 

将会轻而易举地避开你设署的安全系统的防护,以“管理员” 

用户登陆并操作工作组中任何数据库系统。 

三、改进数据库安全机制的对策 

针对Access数据库存在的安全漏洞和隐患.应采取如下 

改进措施: 

(一)通过编程改进Access数据库的加密算法 

这里介绍一种在VB中设置Access密码的解决方案,在 

VB中,用关键字AL1 R DATABASE设置、修改数据库密码。 

使用该方法之前,应先设置对Mierosoft ADO Ext 2、5 for DDL 

and Security库的引用。具体语法是: 

A【 TER DATABASE PASSW0RD New Password Old 

Password 

第一次设置数据库密码时.使用NULL关键字作为AL广 

TER DATABASE语句中的Old Password参数,其代码如下: 

Dim objCorm As ADODB.connection 

Dim strSetPassword As String 

创建SQL串以初始化一个数据库密码 

S【rSetPassword=”AmR DATABASE PASSWORD New— 

Password NULL;” 

Set o ̄conn.=New ADODB.Connection 

’设置数据库的打开方式为独占 

O ̄COnn.Mode=adModeShareExclusive 

打开数据库,path为数据库的路径 

objconn.Open”Provider=Microsoft.Jet.OLEDB.4.0:Data— 

Source:Path;” 

’执行SQL语句设置数据库密码 

objconn.Execute fstrSetPassword) 

修改数据库密码时。首先要用旧密码登录数据库.然后再 

更改密码。其代码如下: 

用旧密码登录 

objconn.Mode=adModeShareExclusive 

objconn.Provider=-”Microsoft.Jet.0LEDB.4.0” 

objconn.properties(”Jet.OLEDB:Database Password”1-”Old 

password” 

objconn.Open”DalaSource=PatIl” 

’修改密码 

StrsetPasswo耐=” AmR DATABASE PASSW0RD New— 

Password” 

objconn.Execute fstrSetPassword) 

删除数据库密码操作类似于修改密码过程,只需使用 

NUI上关键字作为AU R DATABASE语句的NewPassword参 

数即可 

(二)消除由System.mdw文件带来的隐患 

可以使用工作组管理员程序来对工作组信息文件进行管 

理。数据库管理员有权增加、删除组和用户。最好把开发同一 

个项目的成员设计成为一个组。Access将用户归类到各种组 

中,所以数据库安全管理可以得到极大的简化.也就是为组而 

不是为单个用户指定权限,然后通过将用户添加到组中或从 

组中删除的方式来更改单个用户的权限。对于处于同组的用 

户授予新权限,只要执行一个操作,即可对该组账号授予新的 

权限。为了数据库的安全.对不再使用数据库的用户和组.应 

做到及时删除。 

(三)消除由“管理员”用户引发的安全漏洞 

对于解决由“管理员”用户所引发的安全漏洞,笔者的基 

本思路是屏蔽“管理员”用户对数据库的所有权限,首先,在管 

理员用户组中增加一个新的与“管理员”用户等同的新用户. 

例如为mine,然后以这个新用户登录Access.从管理员用户组 

将“管理员”用户撤出,并屏蔽掉“管理员”用户对数据库的所 

有权限,这样,“管理员”用户就成为了一个普通用户,实际的 

数据库系统管理员则变为新用户fmine1,而你的数据库安全系 

统就对所有的用户起安全防护作用了。 

四、结语 

Access数据库已广泛应用于各行各业.给我们带来极大 

的方便,它虽然存在一些不足.但是只要我们在实际应用中多 

考虑Access数据库的安全问题.风险还是可以避免的。本文中 

分析的对数据安全性的操作在数据库的访问中起着一定的作 

用,但是,尽管人们想到了种种办法来尽量维护自己的数据库 

安全,也总是不断有漏洞被发现。所以,为了确保数据库的安 

全,数据的备份与恢复是必不可少的最后一道防线。 

【参考文献】 

[1l史济民,等.Acce ̄应用系统开发教程[M1.北京:清华大 

学出版社.2004. 

[2l郭琦.Visual Basic数据库系统开发技-K[M],北京:人民 

邮电出版社.2003 

【31李海燕.保护Microsoft Access xP数据库的安全O】 计算 

机安全,2O04,(1o). 

【4】罗英均,徐兵,冉戎且 浅谈Access数据库安全策略D】. 

电脑知识与技术,2005,(5). 

【5】廖启亮,曾健思,廖赤球 Access数据库加密系统安全性 

剖析及改进策略刚 中国安全科学学报,2005,(5). 

1O3一 


本文标签: 数据库 用户 密码 文件 管理员