我正在使用Access 2000中的数据库开发Windows应用程序。因为,我一直在开发中,我对保护数据库知之甚少。现在,是我学习它并遇到困难的时候了。
数据库位于我们网络服务器上的一个公共共享位置。我想知道如何保护数据库,以便没有人可以从该位置打开,仍然能够通过Windows应用程序读取和写入数据。
答案 0 :(得分:2)
如果您想要数据安全性,那么您应该使用Jet / ACE之外的其他东西作为数据存储。
你的问题的最后一句话还不清楚,但听起来很矛盾。为了能够编辑Jet / ACE数据库,用户必须对文件系统中的数据库具有完全CHANGE权限。没有办法解决这个问题。
当然,如果您使用MDB格式,您可以使用Jet用户级安全性,但很久以前就已经破解了,Google需要大约10分钟才能购买破解它所需的内容。它也很挑剔而且很难正确完成(很多人都会通过Jet ULS来保护他们的数据库,最终只会让事情变得更复杂,同时让它更加开放)。
数据库密码是安全影院,即使在A2007的ACCDB格式中,加密也要强得多(并且不再容易破解)。但是,您必须在前端应用程序中对密码进行编码,除非您知道自己在做什么,否则这是一个使用十六进制编辑器进行浏览以查找密码的公开邀请。
如果您需要安全性,请升级到提供真正数据安全性的服务器数据库后端。
答案 1 :(得分:2)
我过去使用Access 2000所做的是创建前端数据库和后端数据库。后端只包含原始数据。前端将包含表格,报告等。
在后端,我将创建一个用于禁用和启用shift键双向传递的表单。该表单有一个“启用Bipass”和一个“禁用Bipass”按钮。它还有一个文本框来输入密码。要使用它,请键入密码并按任一按钮。然后设置数据库,以便在启动时指定表单。只要shift键被禁用,它们就无法进入数据库并直接修改数据。
在前端,我应用相同的功能来阻止它们进入数据库并编辑链接表中的数据。我还在前端使用Jet安全性来管理他们有权访问的内容。
答案 2 :(得分:1)
听起来你只需要在其上设置一些ACL,这样只有一个Windows帐户可以访问它,然后使用你的Windows应用程序模拟该帐户。
答案 3 :(得分:1)
您可以在数据库上输入密码,这样任何人都无法在不知道密码的情况下打开密码。您的应用程序必须在进行数据库连接时传递密码,但这非常标准。
缺点是Access数据库上的密码保护并不是很强大,因此任何有犯罪意图的具有技术天赋的人都可以破解它。