设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 7812|回复: 16
打印 上一主题 下一主题

[加解密/安全] 【转载】ACCESS数据库的安全系统

[复制链接]
跳转到指定楼层
1#
发表于 2005-8-7 22:41:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>





ACCESS数据库的安全系统



作者:unknown 更新时间:2005-03-17







<TR>

<TD>

<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>



<TR>

<TD>

<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>



<TR>

<TD class=menu bgColor=#f9f9fb>

Access是MicroSoft公司始于1994年发表的微机数据库管理系统。作为一种功能强大的MIS系统开发工具,它具有界面友好,易学易用,开发简单,接口灵活等特点,是一个典型的新一代数据管理和信息系统开发工具。与Microsoft的其他数据库产品如FOXPRO等相比,Access具有较独特的优势-提供了更强大的数据组织,用户管理,安全检查等功能。在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE数据库系统所无法比拟的客户服务器(Cient/Server)结构和相应的数据库安全机制。本文拟就Access数据库系统的网络应用及安全机制做较深入的探讨。



建立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数据库系统的安全机制已基本建立起来了(工作流程详见附图1,2)。但是,这样的数据库系统就是真正安全的吗?还不是,因为Access安全系统本身有一个很大的漏洞,如果不设法堵住这个漏洞,在某些情况下,Access系统管理员精心建立起来的安全系统将变得毫无意义。下面,我们将具体讨论Access安全系统漏洞产生的原因以及相应的解决办法。



消除Access的安全漏洞



1.由Admin用户引发的安全漏洞



为什么Access系统存在安全漏洞呢?这要从Admin用户说起。我们知道,Admin用户是Access系统的缺省用户,也就是说,除非你的Access系统在安装后已经重新链接到了某个新的工作组安全系统上,你将以默认的Admin用户登录Access。而微软将其用于标记该Admin帐户的用户ID号设成了一
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-4-29 05:00:00 | 只看该作者
Thank
3#
发表于 2006-5-17 22:21:00 | 只看该作者
非常好,想知道多一點這方面的資料
4#
发表于 2006-5-19 23:38:00 | 只看该作者
Thanks
5#
发表于 2006-5-24 00:14:00 | 只看该作者
学习。
6#
发表于 2006-5-25 01:44:00 | 只看该作者
我是新人,学习中
7#
发表于 2006-5-26 04:03:00 | 只看该作者
学习中~~!
8#
发表于 2006-6-17 21:22:00 | 只看该作者
谢谢了

9#
发表于 2006-7-28 05:45:00 | 只看该作者
新人,学习中
10#
发表于 2006-7-28 17:52:00 | 只看该作者
学习新知识[em02]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-11 22:33 , Processed in 0.088862 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表