【问题标题】:MS Access - "file already in use" error on split databaseMS Access - 拆分数据库上的“文件已在使用”错误
【发布时间】:2012-10-19 10:10:31
【问题描述】:

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

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

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

BE 和 FE 均设置为对所有用户共享而非独占打开。

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

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

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

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

【问题讨论】:

  • 当您谈论“权限”时,您是在谈论 Windows 文件/文件夹权限吗?如果是,我相信每个人都必须对存储数据库的文件夹(及其文件)具有读取和写入权限。您需要以不同的方式实现安全/权限,或者将数据移动到 SQL Server,以便更好地控制安全/权限。
  • 是的,我的意思是 Windows 权限。

标签: ms-access


【解决方案1】:

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

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

一些关于锁文件的文档:Introduction to .ldb files

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

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

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

【讨论】:

  • +1 当然,它的只读/只读文件夹设置会阻止用户创建和/或修改锁定文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
相关资源
最近更新 更多