1

我正在使用 access 2000 中的数据库开发 windows 应用程序。因为我一直在开发,所以我对保护数据库知之甚少。现在,是我学习它并遇到困难的时候了。

该数据库位于我们网络服务器上的一个公共共享位置。我想知道如何保护数据库,以便没有人可以从该位置打开并且仍然能够通过 Windows 应用程序读取和写入数据。

4

4 回答 4

2

我过去使用 Access 2000 所做的是创建一个前端数据库和一个后端数据库。后端将仅包含原始数据。前端将包含表单、报告等。

在后端,我将创建一个表单,用于禁用和启用 shift 键双向。该表单有一个“启用 Bipass”和一个“禁用 Bipass”按钮。它还有一个用于输入密码的文本框。要使用它,您输入密码并点击任一按钮。然后设置数据库,以便在启动时指定表格。只要禁用 shift 键,就无法进入数据库直接修改数据。

在前端,我应用相同的功能来阻止它们进入数据库并编辑链接表中的数据。我还在前端使用 Jet 安全性来管理他们可以访问的内容。

于 2012-03-12T17:55:37.273 回答
2

如果您想要数据安全,那么您应该使用 Jet/ACE 以外的东西作为您的数据存储。

你问题的最后一句话很不清楚,但听起来很矛盾。为了能够编辑 Jet/ACE 数据库,用户必须对文件系统中的数据库拥有完全的 CHANGE 权限。没有办法解决这个问题。

当然,如果你使用MDB格式,你可以使用Jet User-Level Security,但是这个早就破解了,谷歌需要10分钟左右,购买你需要破解的东西。它也很繁琐且难以正确执行(许多人经历了使用 Jet ULS 保护他们的数据库的动作,但最终除了让事情变得更复杂之外什么也没做,同时让事情变得开放)。

数据库密码是安全剧院,即使在 A2007 的 ACCDB 格式中,加密要强得多(并且不再容易破解)。但是您必须在前端应用程序中对密码进行编码,除非您知道自己在做什么,否则这是一个公开邀请,您可以使用十六进制编辑器进行浏览以查找密码。

如果您需要安全性,请升级到提供真正数据安全性的服务器数据库后端。

于 2011-03-17T03:47:10.003 回答
1

您可以在数据库上设置密码,这样任何人都无法在不知道密码的情况下打开它。您的应用程序在进行数据库连接时必须传递密码,但这是非常标准的。

缺点是 Access 数据库的密码保护不是很强大,因此任何具有犯罪意图的技术人才都可以破解它。

于 2011-03-16T16:28:45.770 回答
1

听起来您只需要在其上设置一些 ACL,以便只有一个 Windows 帐户可以访问它,然后使用您的 Windows 应用程序模拟该帐户。

于 2011-03-16T16:21:43.227 回答