6

我在 Windows 7 上的 MS Access 2010 中有一个拆分数据库。

后端位于网络驱动器上的文件夹中,只有某些人具有写入权限;每个人都有读取权限。

每个用户都有自己的前端副本存储在他们的本地机器上。

BE 和 FE 都设置为对所有用户共享而不是独占打开。

如果具有只读权限的用户在另一个具有只读权限的用户打开时尝试继续,他们可以正常工作。

如果具有只读权限的用户尝试在具有写入权限的用户打开它时继续,他们会收到一条消息说“文件已在使用中”并且他们无法打开数据库。

如果具有写入权限的用户尝试打开数据库,而具有只读权限的用户将其打开,则该用户也会以只读方式打开该数据库。

拆分数据库的所有用户都需要完全访问权限吗?我真的不希望每个人都能够进行编辑。我能做些什么来让它发挥作用?

4

1 回答 1

9

这个问题肯定与只读客户端无法管理.laccdb锁定文件这一事实有关,因为它们对数据库文件所在的共享文件夹没有写权限。

当数据库以共享模式打开时,每个客户端都会创建或更新锁文件。
很可能由于只读客户端无法创建锁定文件,它们回退到相信自己处于独占模式。
一旦完全访问的客户端创建了锁文件,任何后续客户端都会尝试使用它,而只读客户端将失败,因为它们无法更新锁。

有关锁定文件的一些文档:.ldb 文件简介

如果您想解决您的问题,您必须授予所有客户端对该文件夹的完全访问权限,但您可以将对.accdb数据库文件本身的访问权限限制为不应修改其中数据的客户端组。

或者,如果您不使用 Access 2007/2010 功能,您可以恢复为使用旧.mdb文件作为后端并使用其旧式组安全功能。

最终,如果您真的想控制访问,您可能需要在客户端内推出自己的安全方案,强制用户登录(或使用他们的机器身份)并更新表单的数据编辑属性取决于该特定用户/机器被允许做什么。

于 2012-10-19T02:10:31.607 回答