我在Windows 7上的MS Access 2010中有一个拆分数据库。
后端位于文件夹中的网络驱动器上,只有部分人具有写权限;每个人都有阅读权限。
每个用户都有自己的前端副本存储在本地计算机上。
BE&对于所有用户,FE都设置为共享而非独占。
如果具有只读权限的用户尝试启用而另一个具有只读权限的用户处于启用状态,则可以正常使用。
如果具有只读权限的用户尝试启用,而具有写入权限的用户将其打开,则会收到一条消息,指出“文件已在使用中”并且无法打开数据库。
如果具有写入权限的用户尝试打开数据库,而具有只读权限的用户将其打开,则该用户也会以只读方式打开。
拆分数据库的所有用户是否都需要完全访问权限?我真的不希望每个人都能够进行编辑。我能做些什么才能让它发挥作用?
答案 0 :(得分:7)
该问题肯定与只读客户端无法管理.laccdb
锁定文件这一事实有关,因为它们对数据库文件所在的共享文件夹没有写入权限。
在共享模式下打开数据库时,每个客户端都将创建或更新锁定文件 由于只读客户端无法创建锁定文件,因此他们可能会认为它们处于独占模式。 一旦完全访问客户端创建锁定文件,任何后续客户端将尝试使用它,并且只读客户端将失败,因为它们无法更新锁定。
有关锁定文件的一些文档:Introduction to .ldb files
如果要解决问题,必须为所有客户端授予对该文件夹的完全访问权限,但是您可以将.accdb
数据库文件本身的访问权限限制为不应该能够访问的客户端组修改其中的数据。
或者,如果您未使用Access 2007/2010功能,则可以恢复使用较旧的.mdb
文件作为后端并使用其旧式组安全功能。
最终,如果您真的想要控制访问权限,您可能需要在客户端内部推送自己的安全方案,强制用户登录(或使用他们的机器身份)并更新您的表单'数据编辑属性取决于允许特定用户/机器执行的操作。