access是microsoft公司始于1994年发表的微机数据库管理系统。作为一种功能强大的mis系统开发工具,它具有界面友好,易学易用,开发简单,接口灵活等特点,是一个典型的新一代数据管理和信息系统开发工具。与microsoft的其他数据库产品如foxpro等相比,access具有较独特的优势-提供了更强大的数据组织,用户管理,安全检查等功能。在一个工作组级别的网络环境中,使用access开发的多用户数据库管理系统具有传统的xbase数据库系统所无法比拟的客户服务器(cient/server)结构和相应的数据库安全机制。本文拟就access数据库系统的网络应用及安全机制做较深入的探讨。
1.创建access工作组
一个access工作组定义为一组用户,他们共享一个或多个access应用程序,并且在他们的access副本中附加公共的
system.mda库。由access的系统管理员(admin用户)来给这些用户授予对数据库系统的相应的操作权限,这样,不同的用户就能以不同的权限访问相关的数据库资源,而在xbase系统中,要实现这样的功能需要数据库开发人员在编程中实施控制,且不十分完善。
access提供了一个新的应用程序microsoftaccessworkgroupadministrator,它能自动完成access工作组的创建工作。对一个工作组而言,access系统管理员需要用这个程序创建一个新的system.mda(或用其他任意的文件名:*.mda)库,并把工作组中的每个用户的access指向这个新的system.mda。可以这样理解,一个系统数据库*.mda对应一个工作组。
2.创建工作组中的access帐户
access帐户包括access组与access用户。一个access组由一个或多个access用户成员构成。在access的安装过程中,access自动默认建立了两个用户组(admins与users)和一个用户(admin),这两个用户组与admin用户是不允许删除的。以admins用户组中的用户(如:admin)登录(logon)进入access后,可以创建新的access组与用户,并将新用户放置到相应的组中。
admins组是access的管理员组,缺省时只包括admin用户,该组中的用户默认对数据库具有全权,并且可以管理其他的用户和用户组。users组是access的缺省用户组,每个用户,包括admin及新建用户都属于该组,缺省时,users组中的用户对数据库也具有全权。
3.设置admin用户的登录口令
admin用户的登录口令是整个数据库系统的安全入口,为什么这样说呢?因为如果没有admin登录口令,所有用户的access副本均以admin用户的身份登录数据库,而不是以access管理员所创建的用户名进行登录,只有设置了admin的登录口令,access才启动它的安全系统,这也就是为什么无法删除admin用户的原因。
4.分配数据库权限
数据库权限是针对某个具体的数据库而言的。access系统管理员(admins组中的一个用户)在打开一个需要工作组共享的数据库之后,就可以根据具体情况对工作组中的access组与access用户进行权限的分配了。不同的access数据库对象具有不同的权限集合,access的数据库对象包括六种,分别是表、查询、表单、报表、宏和模块,必须分别予以授权。对access组的授权适用于该组中的每一个用户。
在这里需要强调指出的是:必须首先屏蔽users组对数据库的所有权限,前面讲过,所有access用户都属于users组,而users组缺省是对数据库对象是具有全权的,所以在做具体数据库的权限之前,必须首先将它的所有权限屏蔽掉。我们不理解为什么微软要给users组对数据库的全部许可权,从工作实践中我们认为这是一个错误,它毫无意义的增加了access管理员的工作强度与难度(因为经常会有忘记屏蔽users组权限而使整个安全系统形同虚设的事情发生)。我们认为users组对数据库对象应缺省为具有最低的权限,这样是最有效的和安全的。
至此,整个access数据库系统的安全机制已基本建立起来了。但是,这样的数据库系统就是真正安全的吗?还不是,因为access安全系统本身有一个很大的漏洞,如果不设法堵住这个漏洞,在某些情况下,access系统管理员精心建立起来的安全系统将变得毫无意义。下面,我们将具体讨论access安全系统漏洞产生的原因以及相应的解决办法。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器