Access安全吗?Access安全性之QA详解

news/2024/8/26 17:23:42
 

Access安全吗?Access安全性之QA详解
作者:Access911
日期:2001-04-03
原文地址:http://access911.net/old/study/a_oth002.htm

    在写这篇文章前首先要感谢网友:松木、zengwb、秋天、4432,谢谢他们围绕Access安全性的讨论,现摘录如下:

Q MDB我用[启动]的所有选项都 False,用封面表单启动,同个工作组的用户没授权是不能开打表修改,但他可以另建一个空数据库,进行导入或链接进行修改,如何防范?请赐教!

A 首先应该用MS Access Workgroup Administrator程序建立自己的MDW文件,比如newSystem.mdw,然后建立一个新的帐号比如newAdmin,缺省的有AMDIN和,比如GUEST帐号,然后设置各个帐号的密码。然后以newAdmin帐号登陆,建立数据库,或者导入现有的数据库中的表或窗体等进行开发。对数据库的安全性进行设置。除了newadmin帐号,将所有的组和用户对该数据库的打开权限都屏蔽掉,其它权限也宜屏蔽掉。这样的话安全了。这样的话打开该数据库只能关联上新建的MDW文件,使用newAdmin帐号才能打开。但是实际应用时当然还应该建立一个运行软件的帐号,比如newUser,(最好不要用缺省的“用户”帐号,这样关联到SYSTEM。MDW上就可以进入,即使你设置密码也不安全,因为COPY一个新的SYSTEM。MDW一样可以关联。)将newUser帐号对各个表的权限相应的设置,能读写,不能修改设计,对窗体只能运行即可,总之它是用来运行的。屏蔽一切可以修改的权限。这样的话开发和运行就是两个帐号,但是新的问题就是如果就这样交给用户使用,那么用户就必须知道newUser帐号的密码,那样的话数据就又不安全了,所以还应该用VB或者DELPHI做个套子,最简单的写上一句,运行该数据库就行了,比如:

strRunShell = "c:/Program Files/Microsoft Office/Office/MSACCESS.EXE /nostartup"

strRunShell = strRunShell & "/wrkgrp c:/newSystem.mdw c:/pinewood.mde /user newUser /PWD yourpassword"
RetVal = Shell(strRunShell, vbMaximizedFocus)


当然这只是个意思,在这套子里写写别的也可以,比如检查ACCESS是否安装了,路径是不是对,是不是注册了等等。(附:用另外一个已经编译成MDE文件的数据库也可以达到如上效果)

Q 用户安全组我也用过,但是我指的安全性主要针对内部人员,外面的高手如林,根本不要谈安全性了。
ACCESS有个致命的毛病(或许我还不会用),它的安全性性能只能用在当前已设安全机制的数据库,对用户新建的数据库根本无用,用户只需用他的帐户登录ACCESS,新建一个*.MDB,再用链接功能即可把后端数据库的表都链接起来(或者前端数据库也可,因为前端数据库的表是链接再后端数据库的表上,他无非是再链接而已),他只要看懂表的内容,就可以任意修改了。
其实微软稍改ACCESS让它的安全机制适用所有的数据库而不是当前数据库,我们就不用伤脑筋去防范一些初哥儿们,作为我们使用安全机制无非也就防范这些内部使用者的非法修改、破坏而已。
所以我们需要ACCESS系统级安全机制或office developer edition也有一定的帮助

A 错错错,“用户只需用他的帐户登录ACCESS,新建一个*.MDB,再用链接功能即可把后端数据库的表都链接起来(或者前端数据库也可,因为前端数据库的表是链接再后端数据库的表上,他无非是再链接而已),他只要看懂表的内容,就可以任意修改了。”
这段话错!如果ACCESS的安全性真的象贤弟所说的,那我所贴的那些可能都是空谈了。你可能还是没有按照我说贴的实践一番。事实上是不会那样的,因为我是新创建的系统文件(即MDW文件),关联到新的系统文件创建数据库,而此数据库的打开权限只能由我指定的固定的用户比如NEWUSER才有,所以别人,不管关联到什么系统文件上都是无法用新建的数据库联结上的,如果真是那样,ACCESS早就该淘汰了!
如果你不相信我可以做一个数据库发给你,看你能不能打开。我1997年开始使用ACCESS做开发,对我所完成的各种数据库我都要反复测试的,你所说的情况如果可以,我早就积攒几十个别人开发我想破解掉的数据库了。。。。

Q 愚弟还是不明白:
小弟在文中所指的用户是指内部操作人员,我也做过很多测试:
例:我建立一个安全机制的数据库,系统创建一个MDW文件,我设定一个新的只读工作组及一个普通用户(无管理员权),把系统的用户组不设任何权限,然后退出ACCESS,选用新的MDW文件,用那个普通用户登录,建立一个新的文件,然后即可导入、链接先前那个已有安全机制的数据库.

A 你可能还是没认真读我的帖子,其实ACCESS的帮助中有更详尽的说明,非常详细。不过为了彻底让你明白,我就列个傻瓜式的步骤吧,贤弟不要介意,我也是读着傻瓜式的帮助才逐渐变聪明的。
1、先用ACCESS安装目录下的WRKGADM.EXE程序创建一个自己的MDW文件。然后关联上。
2、登陆进ACCESS后,缺省是ADMIN用户,随便建立MDB,修改ADMIN用户密码,建立一个新的帐号,比如PINEWOOD,作为我今后管理变成用,再建立一个NEWUSER,给我以后的用户用。(可以不建立任何组)
3、重新登陆,以PINEWOOD登陆,然后修改密码,即把空密码修改掉。对NEWUSER帐号也重复一次。
4、以PINEWOOD登陆,建立你所需要开发的数据库MDB源文件,起名字比如MYCODE保存后即可对安全性设置。安全性设置你应该知道在哪里吧,菜单里有。将所有ADMIN以及GUEST对MYCODE的任何权限都屏蔽掉,注意,任何权限,不管是对新表还是新模块,还是对数据库的打开权限,全去掉。然后对所有组对本数据库的全部权限也全屏蔽掉。不能遗漏。如果用户组不屏蔽掉其权限,属于这个组的ADMIN以及GUEST都可以打开数据库了。
5、然后对PINEWOOD对数据库的权限进行设置,当然,应该是所有权限都有。对NEWUSER权限进行设置,当然对所有表、查询等除了修改设计权限,读写的权限是应该有的,打开数据库的权限也是应该有的,运行的权限也应该有的。总之这个帐号是给用户用的。
6、然后做开发,建立表窗体等。你已经做过了,那就导入进来。但这时候你的数据库是安全的,别人是无法从MYCODE中得到任何东西的。除非知道密码。
7、开发完后应该是分离数据库,不止到你是不是这样做的,然后让后台的MDB数据库一样的安全。然后编译前台程序为MDE文件。
8、做个EXE文件,我在别的帖子里说了,简单的使用NEWUSER帐号打开数据库的EXE文件。是给你的用户用的,这样他们除了使用这个EXE使用数据库,没别的办法。
9、然后把MDB放到服务器端,MDE和MDW以及EXE发布给用户使用。当然MDE和MDB的关联关系是事先建立并调试好的。编程中如何处理就不用说了。
10、做到这里就足够了,对于非常需要安全的开发者来说本来是还有一些工作要做的。可参见我的别的帖子。“注意”里说了一些。那些问题都是用到了自然会用,未用到的还是没用。遇到哪个问题解决哪个,贤弟以为然否?

Q 我的天?!!难道我要同时复制三个文件,mdb & mdw & exe??? ...
先不说vb 的exe可以很方便的反编译,难道别人就不会把mdw文件先删除,然后再打开mdb文件吗?
如果说access的安全性仅限于此,那真的叫“彻底安全”了。 
另外问一下,我需要更“安全”的方法有吗?前两次说的方法只要稍微懂一点电脑知识的人就可以解决了。

A 对于文件共享方式,服务器端只需要安装MDB数据库,客户端需要安装的是EXE、MDW和MDE文件。
注意:
1、是MDE文件,而不是MDB,数据库应该是放在后端的,而MDE文件是编译过的,效率高,而且即使密码被破解也不会泄露源代码。
2、如果用户删除了MDW文件,那么就根本无法访问数据库了,如果不用我的MDW文件就能访问我的MDB文件,那我谈什么安全。
3、EXE文件未必要用VB,VC、BC、DELPHI都可以,再说VB5以上的版本我还没听说可以反编译的,也没找到相应的工具。
4、目前破解ACCESS数据库的用户级安全密码的工具也不少,但是对MDW文件的用户是可以处理的,可以使之即使破解了MDW文件,也无法获得使用MDE源程序文件MDB的权限,更何况MDE源程序文件MDB他是根本无法得到的,因为根本就未发布。无处得到,除非你计算机让人随便用。所以程序是肯定安全的,数据库的数据的安全性虽是相对安全的,但是也是足够的。 


后续1:

 看完这篇文章竟然还有很多人询问类似以下问题
“我拆分了数据库、而且也用安全向导设定了用户组权限(MDW),我放在服务器上的那个 MDB 能够打开,但是我 COPY 到其他电脑上到 MDB 都无法打开,这是为什么?”
我不得不请大家再认真仔细都看一遍文章,文章中已经明确说明了要打开工作组加密都 MDB/MDE 文件必须要关联相对应都 MDW 文件,你 COPY 到其他机器到时候关联 MDW 启动了么?你把那个 MDW 也共享了么?还是你把 MDW 文件已经复制到其他电脑上了呢?如果没有,那么请去做一下!

 

另外,上述文章是我在 01 年写到资料,适用于 ACCESS 97 ,现在 ACCESS 已经升级到 ACCESS 2003 了,它的安全向导已经集成到 ACCESS 到“工具”菜单中了,请大家自己去看一下。

access911 写于 20060316 下午

 

 

后续2:

 还有很多网友问我“我拿到了MDB文件但是打开的时候提示我对某个表没有读取权限,我还有办法么?”
回答上述问题,请仔细看本文:
1、如果对方定义了这个 MDB 的权限,并且在定义权限时没有漏洞,而且也没有为你留下对应的 MDW 文件,那么你肯定无法读取数据了,你可以尝试用文本编辑器来打开 MDB 本身看看从二进制上你还能看出些什么来
2、如果对方为你留下了对应的 MDW 文件,那么只要关联这个 MDW 文件启动 MDB 文件即可。如果有密码可以用密码破解软件来破解,到 ACCESS2003 为止MDB打开密码、MDW工作组密码、VBA工程密码都可以破解。注意!MDW文件可能已经被对方改名,你可以搜索一下硬盘看看有没有类似的文件在 MDB 打开时被调用。
3、有些开发者并没有对 MDB 进行加密,只是在 MDB 启动的时候加载了一段代码,这段代码是一个带有欺骗性质的 MSGBOX,所以请确定看到的“没有权限”的提示的确是 ACCESS 的系统提示,而不是某个 MSGBOX 或者 窗体。如果确定不是 ACCESS 系统提示,那么可以按住 SHIFT 键来启动 MDB ,这样就不会运行那段自动代码了,如果按住 SHIFT 无效,那么可能是开发这个 MDB 的作者锁定了 SHIFT 键,请用:
    如何启动或禁止(禁用)shift键锁定(shift键解锁)《其他》
    http://access911.net/index.asp?u1=a&u2=71FAB01E
中我提供的解锁工具解开锁定即可

 

access911 写于 20060512 下午

 

 


access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接


http://www.niftyadmin.cn/n/3723640.html

相关文章

【很好,很和谐】蒙骗了CCTV 人民网 凤凰网 网易 新浪的 特大假新闻 学生网站系统 007OS 取代Windows操作系统

事态发展 :假新闻 已经被各大媒体转载 007os相关新闻: 大三学生研发软件卖200万元成富豪(图)       cctv 学生所创办网站被亿聚网以200万价格收购(图) 央视国际 大学生研发新计算机操作系统亿聚200万收购    人民网 亿聚网200万收购华工学生个人网站007os …

js正则及常用方法函数总结

js正则及常用方法函数总结 一、总结 一句话总结:两种,字符串方法和正则对象方法。 二、js正则及常用方法函数总结 正则表达式作为一种匹配处理字符串的利器在很多语言中都得到了广泛实现和应用,web开发本质上是处理字符串(服务端接…

寻找最短的跨站代码(by jmdcw)

那天剑心问我&#xff0c;最短的跨站语句是多少&#xff1f;要放在以前&#xff0c;我一定会这样想&#xff0c;正常的跨站代码&#xff1a;<script>alert("a")</script> &#xff0c;查一下&#xff0c;一共27个字符。嘿嘿&#xff0c;不过&#xff0c;…

从React组件划分的纠结到总结

在实际开发项目中&#xff0c;我将所有的React组件划分为容器组件和展示组件&#xff0c;展示组件其实就是一个纯函数组件&#xff0c;没有任何副作用&#xff0c;基本都是PureComponent。但是突然&#xff0c;出现了这么一个问题&#xff1a; 我有一个浮层组件Layer&#xff0…

最酷的windows后门 呵呵

后门原理&#xff1a; 转至&#xff1a;小章 blog http://blog.csdn.net/scz123/archive/2007/03/14/1528695.aspx 在windows 2000/xp/vista下&#xff0c;按shift键5次&#xff0c;可以打开粘置&#xff0c;会运行sethc.exe&#xff0c;而且&#xff0c;在登录界面里也可以打…

repo下载Android源码时报 python windowserror 5

WindowsError: [Error 5] repo sync之后&#xff0c;突然停在了这个地方 Traceback (most recent call last):File "E:\LocalProject\Oreo\.repo\repo/main.py", line 538, in <module>_Main(sys.argv[1:])File "E:\LocalProject\Oreo\.repo\repo/main.py…

清空系统密码

转至 7j blog 这东西再放都长毛了,放出来....精灵还写了个利用工具,找不到了.回头补上.. ystem32下 有个msv1_0.dll xp sp2 F8 10 75 11 B0 01 8B 4D修改为E0 00 75 11 B0 01 8B 4D 2k professinalF8 10 0F 84 71 FF FF修改为E0 00 0F 84 71 FF FF 2k sp4F8 10 75 11 b0 01 8b …

13英寸标屏将成绝响 笔记本宽屏化谁是祸首

作者&#xff1a;十指如飞 【IT168 评论】六月可能会让某些消费者非常郁闷&#xff0c;因为富士通发布了S6410。这是一款13英寸宽屏笔记本&#xff0c;标志着继ThinkPad在T60转向宽屏后&#xff0c;又一个也是最后一个主流笔记本品牌向宽屏妥协。再看惠普、戴尔等品牌商用笔记…