除密码保护外,如何改善MS Access MDB的保护?

时间:2009-05-07 07:46:28

标签: security ms-access protection

我有一个受密码保护的mdb访问权限但是可以通过google中的免费工具轻松破解,如1秒内。除了支付一些昂贵的工具,有一个很好的方法来保护ms访问数据库文件?我正在考虑加密它然后通过DLL解密它,获取一些数据,并将其传递给第三方应用程序,然后当连接关闭时,再次加密文件。

如果有人关心这个方法的谬论,或者有一些其他的资源,工具等,那就太棒了。

谢谢:)

7 个答案:

答案 0 :(得分:2)

Access是一个旧的数据库,为什么不是SQL Express 2005(女巫是免费的)?你将获得更多关于安全性的知识,在你的应用程序中你使用了一个没有人知道但无法看到它的连接中的用户/密码...如果他们试图打开SQL,他们只会看到数据库名称,并且没别的(记得使用SQL身份验证而不是Windows身份验证)

如果你使用.NET,在安装程序中你可以告诉你只安装SQL 2005 Express之后安装你的应用程序,或者如果使用其他语言,使用InstallShield,FinalBuilder等来做同样的事情......

:)

当我想到的时候,你的想法“挣扎”了......访问开始的响应时间很短,一个表中有超过30k行(来自Microsoft的引用),如果要创建一个加密/解密的层数据...你的应用程序将从慢到完全不工作......这会是一个好主意吗?

答案 1 :(得分:2)

我只是在适当的地方使用Jet,但是当你开始担心密码保护数据超出了NTFS安全性和Jet ULS所能获得的数据时,你就需要使用不同的数据存储。

但是我这样说:

安全不是技术问题 - 这是一个人的问题。没有任何安全措施可以保护您免受具有管理员权限的用户的影响。您始终必须足够信任他人,以授予他们查看和编辑数据的权限。通常,重点是如何防止未经授权的用户使用您的数据,而不是设计您的应用以保护您的数据免受授权用户可能造成的损害。前者非常简单,后者需要特别注意您的安全设置,而不是设计应用程序的方式。

最后,你必须相信人们的行为是负责任的,Jet或SQL Server无法帮助你做到这一点。

答案 2 :(得分:1)

从MDB格式更新为ACCDB(Access2007)格式怎么样?

Get started with Access 2007 security

“Office Access 2007中的加密工具结合并改进了两个较旧的工具 - 数据库密码和编码。当您使用数据库密码加密数据库时,您使其他工具无法读取所有数据,并强制用户输入使用数据库的密码。在Access 2007中应用的加密使用比早期版本的Access中使用的更强的算法...“

答案 3 :(得分:1)

如果您只是想保护数据,或者您是想要保护其他内容,例如专门说VBA代码,那么我不清楚阅读您的帖子。您说您有一个mdb文件,但是您使用的是Access 2003,2007或其他一些版本?您/您是否计划在Intranet站点上部署Access解决方案? (以下我的评论我会假设你是。)

我同意其他海报,如果您在部署基于Access的解决方案之前有机会考虑其他解决方案,那么您应该这样做。但是,如果您无法避免基于Access的解决方案,我想分享以下建议和/或评论。

  1. 如果您正在使用Access 2003,那么您可能需要考虑用户和组级安全性(用户/组级安全设置和配置在Access 2007(accdb)格式数据库中不可用,但Access 2007将识别来自mdb文件的用户/组权限。使用用户/组级别安全性,您可以根据已定义的用户和工作组限制对数据库的访问。有关详细信息 - [http://office.microsoft.com/en-us/access/HP051882261033.aspx][1]

  2. 考虑拆分数据库(将数据与表单,报表等应用程序对象分开)和/或创建限制可用对象的不同版本。

  3. 保留设计大师和生产副本。这与先前的评论一致,其中的想法是并非一切都在桌面上。您可能需要查看2003年和2007年可用的Access Developer Extensions(如果您还没有)(可以从Microsoft免费下载和安装)。

  4. 尽可能采用不鼓励和/或限制员工或同事访问的政策(我再次假设您在公司内部网上部署)

  5. 对数据库进行编码。这将使您的表的属性信息,VBA代码更难以检索,因为数据库将被压缩,任何设计级信息将被删除或更难访问。

  6. 最后,如果您有时间,资源和/或附近的图书馆/书店有副本,我建议您查看 Alison Balter掌握Microsoft Office Access 2003 ,结帐有关开发多用户和企业应用程序的部分,其中有一节介绍安全性。更新了ACCESS 2007: Alison Balter掌握Microsoft®OfficeAccess 2007开发

答案 4 :(得分:0)

以加密格式保存数据将是一种解决方案。如果密码“失败”,则破解者也必须解密数据

答案 5 :(得分:0)

无论你使用哪种方法,都会被知识渊博的人破解。

这实际上取决于数据的价值:如果它真正有价值,我会使用不同的模型,比如将数据库放在互联网上的服务器后面。然后,您可以限制查询的数量,以及过滤滥用。

如果可以追踪泄漏或使用有限,您最好使用许可协议保​​护数据。至少那时你可能有办法恢复你的损失。请注意,OED最近删除了其版权保护。

还要考虑未来:10年内某些网络管理员可能需要合法访问数据,并且使用简单的密码将显示受保护的数据,但仍然允许规避。< / p>

答案 6 :(得分:0)

对于桌面应用,我建议你走Sql Server Compact Edtition (SQLCE)的路线。或者如果你有点钱,VistaDB(与SQLCE不同,它支持存储过程,视图和触发器)。您将获得更好的安全性,更好的性能,更少的维护和损坏麻烦以及更轻松的部署。