如何使1个用户更新数据库同时允许其他用户只能在Microsoft Access中读取?

Lau*_*ghy 1 ms-access access-vba ms-access-2010

我计划将带有表单和数据库的Microsoft Access应用程序放到共享驱动器上,供大约10多个人使用。但是,存在并发问题。有什么方法可以设置它,例如允许Microsoft Access数据库在任何时候只能由1个人更新,而允许其他人读取但不能更新它?目前,访问数据库只能由一个人更新和读取,而其他人甚至不能打开文件。非常感谢您提供的任何帮助!

Gor*_*son 5

我想做的是仅允许1个人能够更新数据库,而其他人将只读。

是的,它可以完成,并且您不需要更改应用程序代码即可做到。可以通过调整共享文件夹和共享文件的权限来完成。

文件夹上的权限

每当一个或多个用户需要对ACE / Jet数据库文件(.accdb或.mdb)的读/写访问权限时,所有用户都必须对该文件所在的文件具有“ 创建文件/写数据”权限。这是因为,如果他们是数据库的第一人,则他们的Access数据库引擎副本需要能够创建锁定文件(.laccdb或.ldb)。

请注意,即使只是对文件具有只读访问权限的用户仍然需要对该文件夹具有 “创建文件”权限。这是必不可少的。

文件权限(.accdb或.mdb)

在这里,您可以区分可以更新数据库的用户和仅具有只读访问权限的用户。只需使用文件上的Windows权限即可根据需要为他们提供读+写或只读权限。

常见错误#1:在文件夹上设置用户/组权限(读写或只读),并让数据库文件(.accdb或.mdb)继承它们

在这种情况下,“读+写”用户可以创建锁定文件,而“只读”用户则不能。

•方案A:如果“读写”用户首先打开数据库,则将创建锁定文件,并且一切都会按预期进行。其他“读写”用户可以打开数据库并进行更新,而其他“只读”用户则以只读方式打开数据库。

•方案B:如果“只读”用户首先打开数据库文件,则他们的Access副本将按预期将其打开为只读文件。但是,如果“读+写”用户(根据其文件权限)然后尝试打开数据库文件,则他们也将以只读方式打开它。每个人都可以进入,但没有人可以进行更改。

常见错误2:禁止所有人在文件夹中“创建文件”

在这种情况下,没有人可以创建锁定文件,因此每个人都以只读方式打开数据库,无论他们对数据库文件本身的权限如何。

附加条款:

通过混合访问Windows Server 2012上的共享.accdb后端的Access_2010和Access_2013客户端,可以确认上述结果。在早期版本的Access中,如果没有人可以创建锁定文件,则第一个人“进入”将打开该文件。数据库文件以“独占模式”访问并获得其文件许可所允许的任何访问权限,而所有后续用户都将被拒绝访问,并显示一条错误消息,指出“该文件已由另一个用户独占打开”。