我维护一个拆分为前端和后端文件的 ms-access 应用程序。前端文件位于用户计算机中。后端文件位于服务器的共享文件夹中。
所需的最低权限是多少?我可以在该文件夹中授予某些用户只读权限吗?(或以其他方式对他们隐藏)但仍使他们能够查看数据?
我应该如何为数据文件和包含它的文件夹提供最佳安全性?
我维护一个拆分为前端和后端文件的 ms-access 应用程序。前端文件位于用户计算机中。后端文件位于服务器的共享文件夹中。
所需的最低权限是多少?我可以在该文件夹中授予某些用户只读权限吗?(或以其他方式对他们隐藏)但仍使他们能够查看数据?
我应该如何为数据文件和包含它的文件夹提供最佳安全性?
不幸的是,必须创建、更新和删除锁定文件 (ldb)。如果权限不足的用户打开数据库,它将被所有其他用户锁定,因此您的所有用户都需要后端的读/写/删除权限。
编辑#1 每次打开数据库时都必须创建锁定文件,这包括通过链接表,并在数据库关闭时删除。如果锁定文件退出并且数据库关闭,则表明出现了问题。如果在权限不足的情况下运行压缩和修复,您也会遇到问题。
编辑#2 Access 的安全性是一个相当大的主题,在很大程度上取决于您的环境和要求,对于后端,它的范围从数据库密码(组织薄但非常适合大多数办公室)到 Access安全性,这可能很复杂,已在 2007 年被删除。这里是一个链接http://support.microsoft.com/kb/207793,用于下载版本 < 2007 的 Microsoft Access 安全性常见问题解答。有关 2007 年安全性的信息可以可以在这里找到http://www.microsoft.com/technet/security/guidance/clientsecurity/2007office/default.mspx。
许多人建议您必须向用户授予 FULL 权限,但事实并非如此。您只需要给他们 MODIFY 权限——您可以拒绝他们 DELETE 权限,这是一个好主意,因为它禁止用户“意外”删除您的数据文件。
确实,对于具有 DELETE 权限的用户,当该用户是最后一个退出数据库的用户时,LDB 文件将在退出时被删除。但是不需要删除 LDB 文件——事实上,在 Access 2 和之前的版本中,LDB 文件在退出时并没有被删除,而是留在原处。这通常没有缺点,但偶尔 LDB 文件会损坏并导致问题,确实需要删除并重新创建。
我所做的是拥有两类数据库用户(在特定于我的 Access 应用程序的自定义 NT 安全组中定义)——DBAdmins 和其他所有人。DBAdmins 拥有完整的权限,其他人只能更改。结果是,只要 DBAdmin 作为最终用户退出,LDB 就会被删除。这个设置效果很好,我已经使用了十多年了。
为您的后端使用隐藏共享实际上只是“默默无闻的安全性”,并不值得付出努力。老练的用户可以通过任意数量的方法来解决这个问题(取决于你如何锁定你的前端):
现在,如果您已经使用 Jet 用户级安全性正确保护了您的应用程序(并且很容易认为您已经保护了您的数据库并发现存在漏洞,仅仅是因为很容易忘记一些关键步骤这个过程),他们将无法做到这一点,但即使你有,Jet ULS 安全性也是可破解的(谷歌搜索它并找到破解软件很容易),所以并不是你应该 100% 依赖的东西。
是的 - 它解析为文件访问权限以及读/写。除非用户提供允许他们写入的凭据,或者您允许在文件上写入,否则您无法执行任何类型的数据更新内容(您将获得“操作需要可更新的查询”)。
运行查询只需要读取权限。