Access平安性之QA详解
Q MDB我用[启动]的一切选项都 False,用封面表单启动,同个工作组的用户没授权是不能开打表修正,但他可能另建一个空,停止导入或链接停止修正,如何防备?请赐教!
A 首先应该用MS Access Workgroup Administrator程序建设本人腗DW文件,比如newSystem.mdw,然后建设一个新的帐号比如newAdmin,缺省的有AMDIN和,比如GUEST帐号,然后设置各个帐号的明码。然后以newAdmin帐号登陆,建设数据库,或许导入现有的数据库中的表或窗体等停止开发。对数据库的平安性停止设置。除了newadmin帐号,将一切的组和用户对该数据库的打开权限都屏蔽掉,其它权限也宜屏蔽掉。这样的话平安了。这样的话打开该数据库只能关联上新建的MDW文件,利用newAdmin帐号能力打开。然而实践运用时当然还应该建设一个运转的帐号,比如newUser,(最好不要用缺省的“用户”帐号,这样关联到SYSTEM。MDW上就可能进入,即使你设置明码也不平安,由于COPY一个新的SYSTEM。MDW一样可能关联。)将newUser帐号对各个表的权限相应的设置,能读写,不能修正设计,对窗体只能运转即可,总之它是用来运转的。屏蔽所有可能修正的权限。这样的话开发和运转就是两个帐号,然而新的成绩就是假设就这样交给用户利用,那么用户就必须知道newUser帐号的明码,那样的话数据就又不平安了,所以还应该用或许做个套子,最简略的写上一句,运转该数据库就行了,比如:strRunShell = "c:\Program Files\Microsoft \Office\MSACCESS.EXE /nostartup"
strRunShell = strRunShell & "/wrkgrp c:\newSystem.mdw c:\pinewood.mde /user newUser /PWD yourpass"
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他是基本无奈失去的,由于基本就未发布。无处失去,除非你计算机让人随意用。所以程序是一定平安的,数据库的数据的平安性虽是相对平安的,然而也是足够的。