2011-03-16 83 views
1

我正在开发与访问2000年数据库的Windows应用程序。因为,我一直在开发中,我对保护数据库知之甚少。而现在,它是我学习它并且遇到困难的时候。访问2000年数据库安全

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

回答

1

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

1

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

缺点是Access数据库上的密码保护功能不是很强大,因此任何技术上有一定犯罪意图的人都可能破坏它。

2

如果您需要数据安全性,那么您应该使用除Jet/ACE以外的其他数据作为数据存储。

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

当然,如果你使用MDB格式,你可以使用Jet User-Level Security,但是很久以前就已经被破解了,Google需要大约10分钟的时间并购买你需要破解的内容。做正确的做法也很挑剔和困难(很多人通过使用Jet ULS保护数据库的动作,最终只做了更复杂的事情,而让事情变得更加复杂)。

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

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

2

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

在后端,我将创建一个用于禁用和启用shift键双向传递的窗体。该表单具有“启用双向通行”和“禁用双向通行”按钮。它还有一个输入密码的文本框。要使用它,请输入密码并点击任一按钮。然后设置数据库,以便在启动时指定表单。只要shift键被禁用,他们就不能进入数据库并直接修改数据。

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