`
isiqi
  • 浏览: 16493787 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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

阅读更多

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

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

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

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

strRunShell="c:\ProgramFiles\MicrosoftOffice\Office\MSACCESS.EXE/nostartup"

strRunShell=strRunShell&"/wrkgrpc:\newSystem.mdwc:\pinewood.mde/usernewUser/PWDyourpassword"
RetVal=Shell(strRunShell,vbMaximizedFocus)


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

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

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年写到资料,适用于ACCESS97,现在ACCESS已经升级到ACCESS2003了,它的安全向导已经集成到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 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

分享到:
评论

相关推荐

    2021年CKS 最新大纲.docx

    CIS Kubernetes Benchmark 是一个开源的安全benchmark工具,用于评估 Kubernetes 集群的安全性。 在这个例子中,我们使用以下命令来下载 CIS Kubernetes Benchmark 的配置文件: ``` wget -O kube-bench-control-...

    华为交换机VLAN配置

    在现代网络环境中,VLAN(虚拟局域网)作为一种重要的网络分割与管理技术,被广泛应用于企业、学校、医院等场景,尤其在大型网络中,VLAN能够有效提高网络安全性、减少广播风暴的影响,并优化网络性能。本文将以华为...

    贝壳钱sig分析包1

    在请求中,数据被按照特定顺序组装,并且在`sig`的计算过程中,还涉及到一个附加字符串`"qA#QH=M+Ns&q+Z&J"`,这可能是一个密钥或者盐值,用于增强签名的复杂性和安全性。这种做法可以防止中间人攻击,因为攻击者...

    Sendmail邮件服务器搭建

    - 编辑`/etc/mail/access`文件,添加允许中继转发的网段,提高安全性。 - 使用`makemap hash /etc/mail/access.db < /etc/mail/access`命令生成新的数据库文件。 ##### 5. 配置别名和生成aliases.db文件 - 编辑`/...

    linux网站服务Apache的安装与配置方法详解

    Apache作为全球最广泛使用的Web服务器软件之一,其稳定性和安全性得到了广泛认可。本文将从挂载光盘、安装HTTP服务、管理HTTPD服务以及配置HTTPD的配置文件等方面进行详细讲解,帮助读者掌握Apache的基本操作。 ###...

    Cacti安装配置完整版

    ### Cacti安装配置知识点详解 #### 一、Cacti简介及应用场景 Cacti是一款基于Web的网络流量监控工具,它通过收集网络设备的数据并以图表的形式展示出来,帮助管理员直观地了解网络设备的状态。Cacti支持多种数据...

    Centos 7 下安装配置SVN服务器操作文档

    接下来是配置用户认证的过程,这一步对于确保数据的安全性至关重要。 - **修改svnserve.conf**:使用命令`vi /home/svn/repo/conf/svnserve.conf`编辑配置文件。在此文件中,需要对以下几项进行配置: - `anon-...

    Fedora 9、CentOS 5下设置Apache+SVN

    【Apache + SVN 配置详解】 在Linux系统中,配置Apache服务器与Subversion(SVN)集成是一项常见的任务,尤其对于开发团队来说,这能够提供一个便捷的...这使得协同开发变得更加高效,同时也保护了代码资源的安全性。

    详细过程:RedHat Linux5开启VNC Server远程桌面

    ### RedHat Linux 5 开启 VNC Server 远程桌面详解 #### 一、引言 随着企业级应用对远程管理的需求日益增加,通过图形化界面进行远程控制变得尤为重要。在 Linux 平台上,VNC (Virtual Network Computing) 成为了...

    如何配置linux下的snmp服务

    [root@idc ~]# rpm -qa | grep snmp net-snmp-libs-5.1.2-11.EL4.7 net-snmp-5.1.2-11.EL4.7 ``` 如果未安装,可以使用RPM包进行安装: - 如果手头有Linux安装盘,可以在其中找到SNMP相关的RPM包并进行安装。 - 或者...

    TD8操作手册

    其内置的缺陷跟踪系统允许跟踪缺陷自产生至解决的全过程,与邮件系统集成,使缺陷信息在整个开发团队、质量保证(QA)、客户支持和信息系统人员间共享。 ### TD8与工具整合 TD8具备与WR(Workload Recorder)、LR...

    sendmail的配置与测试[借鉴].pdf

    【sendmail配置与测试详解】 在IT领域,sendmail是一款广泛应用的邮件传输代理软件,用于在互联网上发送和接收电子邮件。本文将深入讲解sendmail的配置与测试,以帮助理解邮件服务的工作体系以及如何在Linux环境中...

    Linux环境部署

    ### Linux环境部署详解 #### 系统环境与版本确认 在进行任何操作之前,了解当前系统的版本是非常重要的。可以通过执行`uname -a`命令来获取Linux系统的详细信息,包括内核版本、操作系统名称等。 **命令示例:** ...

    Linux网络服务的各种配置

    ### Linux网络服务配置详解 #### 一、概述 在当今高度互联的世界中,网络服务的配置与管理变得尤为重要。Linux作为一种强大的开源操作系统,在网络服务领域占据着举足轻重的地位。本文将详细介绍如何在Red Hat ...

    Oracle rac集群

    ### Oracle RAC 集群部署与配置详解 #### 一、Oracle RAC集群概述 Oracle Real Application Clusters (RAC) 是一个高可用性解决方案,它允许在多台服务器上运行一个数据库实例,从而提高了系统的可靠性和性能。...

    手机软件测试

    - **按测试任务**:性能测试、安全测试、兼容性测试等。 **2.4 黑盒测试详细介绍** - **Release Test**:发布前的最终测试,验证软件是否符合发布标准。 - **System Test**:验证系统的整体行为是否符合需求规格...

Global site tag (gtag.js) - Google Analytics