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