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权限,但是事实并非如此。我们只需要给他们"修改"权限-我们可以拒绝他们的"删除"权限,这是一个好主意,因为它禁止用户"意外"删除数据文件。
确实,对于具有DELETE权限的用户,当该LDB文件是退出数据库的最后一个用户时,该LDB文件将在退出时被删除。但是,不需要删除LDB文件-实际上,在Access 2和更低版本中,LDB文件不会在退出时被删除,而只是闲逛。这通常没有任何缺点,但是LDB文件有时会损坏并引起问题,确实确实需要删除并重新创建。
我要做的是拥有两类数据库用户(在特定于我的Access应用程序的自定义NT安全组中定义)-DBAdmins和其他所有用户。 DBAdmins具有FULL权限,其他所有人都只能更改。结果是,无论何时以最终用户身份退出DBAdmin,都会删除LDB。此设置的确运行良好,并且我使用它已有十多年了。
回答
在后端使用隐藏的共享实际上仅是"默默无闻的安全",而不是真正值得付出的努力。经验丰富的用户可以通过多种方法(取决于我们锁定前端的方式)来解决问题:
- 查看MSysObjects表并找到表的CONNECT字符串,它将识别隐藏的共享。
- 检查CurrentDB.TableDefs("链接表的名称")的结果。在VBE的直接窗口中连接
现在,如果我们已经使用Jet用户级安全性正确保护了应用程序(并且很容易以为我们已经保护了数据库安全性并发现其中存在漏洞,那是因为很容易忘记其中的一些关键步骤流程),他们将无法执行此操作,但是即使我们拥有,Jet ULS安全性也是可以破解的(对于Google来说很容易,可以找到破解软件),因此我们100%都不应该依赖它。