Access是MicroSoft公司始于年发表的微机数据库管理系统作为一种功能强大的MIS系统开发工具它具有界面友好易学易用开发简单接口灵活等特点是一个典型的新一代数据管理和信息系统开发工具与Microsoft的其他数据库产品如FOXPRO等相比Access具有较独特的优势提供了更强大的数据组织用户管理安全检查等功能在一个工作组级别的网络环境中使用Access开发的多用户数据库管理系统具有传统的XBASE数据库系统所无法比拟的客户服务器(Cient/Server)结构和相应的数据库安全机制本文拟就Access数据库系统的网络应用及安全机制做较深入的探讨
建立Access的安全系统
创建Access工作组
一个Access工作组定义为一组用户他们共享一个或多个Access应用程序并且在他们的Access副本中附加公共的
SYSTEMMDA库由Access的系统管理员(Admin用户)来给这些用户授予对数据库系统的相应的操作权限这样不同的用户就能以不同的权限访问相关的数据库资源而在XBASE系统中要实现这样的功能需要数据库开发人员在编程中实施控制且不十分完善
Access提供了一个新的应用程序MicrosoftAccessWorkgroupAdministrator它能自动完成Access工作组的创建工作对一个工作组而言Access系统管理员需要用这个程序创建一个新的SYSTEMMDA(或用其他任意的文件名:*MDA)库并把工作组中的每个用户的Access指向这个新的SYSTEMMDA可以这样理解一个系统数据库*MDA对应一个工作组
创建工作组中的Access帐户
Access帐户包括Access组与Access用户一个Access组由一个或多个Access用户成员构成在Access的安装过程中Access自动默认建立了两个用户组(Admins与Users)和一个用户(Admin)这两个用户组与ADMIN用户是不允许删除的以Admins用户组中的用户(如:Admin)登录(LOGON)进入Access后可以创建新的Access组与用户并将新用户放置到相应的组中
Admins组是Access的管理员组缺省时只包括Admin用户该组中的用户默认对数据库具有全权并且可以管理其他的用户和用户组Users组是Access的缺省用户组每个用户包括Admin及新建用户都属于该组缺省时Users组中的用户对数据库也具有全权
设置Admin用户的登录口令
Admin用户的登录口令是整个数据库系统的安全入口为什么这样说呢?因为如果没有Admin登录口令所有用户的Access副本均以Admin用户的身份登录数据库而不是以Access管理员所创建的用户名进行登录只有设置了Admin的登录口令Access才启动它的安全系统这也就是为什么无法删除Admin用户的原因!!page>
分配数据库权限
数据库权限是针对某个具体的数据库而言的Access系统管理员(Admins组中的一个用户)在打开一个需要工作组共享的数据库之后就可以根据具体情况对工作组中的Access组与Access用户进行权限的分配了不同的Access数据库对象具有不同的权限集合Access的数据库对象包括六种分别是表查询表单报表宏和模块必须分别予以授权对Access组的授权适用于该组中的每一个用户
在这里需要强调指出的是必须首先屏蔽Users组对数据库的所有权限前面讲过所有Access用户都属于Users组而Users组缺省是对数据库对象是具有全权的所以在做具体数据库的权限之前必须首先将它的所有权限屏蔽掉我们不理解为什么微软要给Users组对数据库的全部许可权从工作实践中我们认为这是一个错误它毫无意义的增加了Access管理员的工作强度与难度(因为经常会有忘记屏蔽Users组权限而使整个安全系统形同虚设的事情发生)我们认为Users组对数据库对象应缺省为具有最低的权限这样是最有效的和安全的
至此整个Access数据库系统的安全机制已基本建立起来了但是这样的数据库系统就是真正安全的吗?还不是因为Access安全系统本身有一个很大的漏洞如果不设法堵住这个漏洞在某些情况下Access系统管理员精心建立起来的安全系统将变得毫无意义下面我们将具体讨论Access安全系统漏洞产生的原因以及相应的解决办法
消除Access的安全漏洞
由Admin用户引发的安全漏洞
为什么Access系统存在安全漏洞呢?这要从Admin用户说起我们知道Admin用户是Access系统的缺省用户也就是说除非你的Access系统在安装后已经重新链接到了某个新的工作组安全系统上你将以默认的Admin用户登录Access而微软将其用于标记该Admin帐户的用户ID号设成了一个固定值这就意味着全世界的Access系统的Admin用户在Access中都是同一个用户这样问题就出现了如果一个未链入你的工作组安全系统的用户在网络文件系统级别上可以获得对你的数据库系统文件的Admin权他将以Admin用户的身份拥有对该数据库系统的所有权利!由Access本身建立起来的第二级安全机制将不起任何作用这种情况实在太容易发生工作组用户只要在他的计算机上重新安装一次Access软件他将会轻而