Access 2000 数据库安全
我正在使用Access 2000中的数据库开发Windows应用程序。由于我一直在开发中,所以我对保护数据库知之甚少。现在,是我学习它并遇到困难的时候了。
该数据库位于我们网络服务器上的一个公共共享位置。我想知道如何保护数据库,以便任何人都无法从该位置打开并且仍然能够通过 Windows 应用程序读取和写入数据。
I am developing windows application with database in access 2000. Since, I have always been in development, I have little knowledge about securing database. And now, its time for me to learn it and having difficulty.
The database is located at one a common shared location on our network server. I would like to know how to secure the database so that no one can open from the location and still be able to read and write the data through the windows application.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我过去使用 Access 2000 所做的就是创建一个前端数据库和一个后端数据库。后端仅包含原始数据。前端将包含表单、报告等。
在后端,我将创建一个用于禁用和启用 Shift 键双通的表单。该表单有一个“启用 Bipass”和一个“禁用 Bipass”按钮。它还具有一个用于输入密码的文本框。要使用它,您需要输入密码并点击任一按钮。然后设置数据库,以便在启动时指定表单。只要Shift键被禁用,那么他们就不能进入数据库并直接修改数据。
在前端,我应用相同的功能来阻止他们进入数据库并编辑链接表中的数据。我还在前端使用 Jet security 来管理他们有权访问的内容。
What I have done in the past with Access 2000 is create a front end database and a back end database. The back end would contain just the raw data. The front end would contain the forms, reports and etc.
On the back end I would create a form that is used to disable and enable the shift key bi-pass. The form has a 'Enable Bipass' and a 'Disable Bipass' button. It also has a text box to enter a password. To use it, you type the password and hit either button. Then set the database so that the form is specified under start up. As long as the shift key is disabled, then they can not get into the database and modify data directly.
On the front end I apply the same functionality to stop them from getting into the database and editing the data in the linked tables. I also use Jet security on the front end to manage what they have access to.
听起来您只需要在其上设置一些 ACL,以便只有一个 Windows 帐户可以访问它,然后使用您的 Windows 应用程序模拟该帐户。
It sounds like you just need to set some ACL's on it so that only one windows account can access it, then impersonate that account using your windows application.
您可以在数据库上设置密码,以便任何人在不知道密码的情况下都无法打开它。您的应用程序在进行数据库连接时必须传递密码,但这是相当标准的。
缺点是 Access 数据库的密码保护并不是很强大,因此任何具有犯罪意图的技术人才都可以破解它。
You could put a password on the database so that nobody can open it without knowing the password. Your application has to pass the password when doing the database connection, but that's pretty standard.
The drawback is that password protection on Access databases isn't really strong, so that any technically talented person with some criminal intent could break it.
如果您想要数据安全,那么您应该使用 Jet/ACE 以外的其他东西作为数据存储。
你的问题的最后一句话很不清楚,但听起来很矛盾。为了能够编辑 Jet/ACE 数据库,用户必须对文件系统中的数据库具有完全的 CHANGE 权限。这是没有办法解决的。
当然,如果你使用MDB格式,你可以使用Jet User-Level Security,但是这个早就被破解了,大约需要10分钟去Google并购买破解它所需的东西。正确地执行此操作也很繁琐且困难(许多人通过 Jet ULS 来保护他们的数据库,但最终什么也没完成,只是让事情变得更加复杂,同时让数据库处于开放状态)。
数据库密码是一个安全问题,尽管 A2007 的 ACCDB 格式的加密功能要强大得多(并且不再容易破解)。但是,您必须在前端应用程序中对密码进行编码,除非您知道自己在做什么,否则这是公开邀请使用十六进制编辑器进行浏览以查找密码。
如果您需要安全性,请升级到提供真正数据安全性的服务器数据库后端。
If you want data security, then you should use something other than Jet/ACE as your data store.
Your last sentence of your question is quite unclear, but it sounds contradictory. To be able to edit a Jet/ACE database, the user has to have full CHANGE permission on the database in the file system. There is no way around this.
Certainly if you use MDB format, you can use Jet User-Level Security, but that's been cracked long ago and it takes about 10 minutes to Google and purchase what you need to crack it. It's also fussy and difficult to do correctly (many people go through the motions of securing their database with Jet ULS and end up accomplishing nothing but making things more complicated, while leaving it wide open).
Database passwords are security theater, even though in ACCDB format from A2007 the encryption is much stronger (and no longer easily crackable). But you then have to encode the password in your front-end application, and unless you know what you're doing, that is an open invitation for browsing with a hex editor to find the password.
If you need security, upsize to a server database back end that provides real data security.