ACCESS数据库安全系统
2007-10-15 15:15:03 来源:WEB开发网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号设成了一个固定值,这就意味着全世界的Access系统的Admin用户在Access中都是同一个用户。这样,问题就出现了----如果一个未链入你的工作组安全系统的用户在网络文件系统级别上可以获得对你的数据库系统文件的Admin权,他将以Admin用户的身份拥有对该数据库系统的所有权利!由Access本身建立起来的第二级安全机制将不起任何作用.这种情况实在太容易发生----工作组用户只要在他的计算机上重新安装一次Access软件,他将会轻而易举地避开你设置的安全系统的防护,而做为默认的admin用户簦录并操作工作组中任何数据库系统。
2.解决方案
如何解决由Admin用户所引发的安全漏洞呢?在市面上有关Access的参考书籍中很难找出答案。实践中,我们总结出了一套行之有效的解决方案,现提出来供大家参考。 编程入门(http://bianceng.cn)
我们的基本思路就是屏蔽Admin用户对数据库的所有权限,首先,在Admins用户组中增加一个新的与Admin用户等同的新用户,例如为 www",然后以这个新用户登录Access,从Admins用户组将Admin用户撤出,并屏蔽掉Admin用户对数据库的所有权限,这样,Admin用户就成为了一个普通用户,实际的数据库系统管理员则变为新用户(www),而你的数据库安全系统就对所有的用户起安全防护作用了。
结束语
尽管Access系统存在着某些安全漏洞,但它仍不失为微机平台上一个优秀的数据库管理系统,在工作组级或部门级的数据库应用领域,采用Access开发的数据库系统将会真正实现以往只有用大型数据库管理系统如Oracle等才能开发出的客户/服务器模式的数据库应用程序,同时,经过修正的Access安全系统也会使数据库管理员在数据库的网络安全方面高枕无忧。
由于国内对Access的应用起步较晚,有关的技术资料也比较缺乏,这在一定程度上制约了Access这样一个优秀的数据库产品的应用,我们希望通过本文能够抛砖引玉,使国内用户能进一步的认识、了解和使用Access,使国内微机平台上出现更多的用Access开发的数据库产品。
- ››安全第一 Windows 7五件应该知道的事
- ››数据库大型应用解决方案总结
- ››安全连接Internet-让ISA Server 2006做为企业中的...
- ››Access denied for user...
- ››Access denied for user: root@dbhost (Using pas...
- ››安全技巧 保护IP地址的五种超级方法
- ››access 的页怎么用
- ››安全专家称iPhone漏洞可泄露用户信息
- ››安全意识淡薄成反垃圾邮件“隐形炸弹”
- ››Access 2000中的查询分析器
- ››access编程打开其他数据库中的窗体
- ››Access报表打印如何自动分页
更多精彩
赞助商链接