如何启用对 Access 数据库的多用户访问?

Posted

技术标签:

【中文标题】如何启用对 Access 数据库的多用户访问?【英文标题】:How do I enable multi-user access to an Access database? 【发布时间】:2011-06-27 06:13:45 【问题描述】:

我有一个用 C# 编写的计费应用程序,它使用 Access 数据库(.mdb 文件)进行存储。我希望应用程序支持多个用户共享对数据库的访问权限,但这会失败并显示类似于

的错误消息

The database has been opened exclusively by another user, or you do not have permission to open it

如何允许多个用户访问该文件?

【问题讨论】:

你用谷歌搜索过错误信息吗?如果没有,你为什么要发帖? 【参考方案1】:

如果你真的必须这样做(并且因为使用访问权限而感到羞耻),你必须意识到访问是基于文件的。

基本上,您连接到数据库文件(使用驱动程序),因此要允许多个并发用户,您必须有一个网络,其中包含您放置数据库的文件共享。并且您需要确保您的数据库以允许多用户访问的方式打开。我想我记得这是数据库上的设置或其他东西,然后迫使它创建一些锁定文件。

那说:转移到 SQL Server,当您进入网络/多用户时,Access 开始真正表现出消极的一面。微软不鼓励它大约 10 年了。这是我记得的原因之一 - 我在 15 年前停止访问多用户,因为它没有意义。

【讨论】:

因对 Access 苛刻而被否决。只要您使用正确的设置打开它,它就可以在合理的人群中与多个用户一起正常工作。只要 Jet/ACE 存在,它就一直是多用户且可靠的。至于弃用指控,MS 一直在弃用 Jet/ACE 以与其主线开发工具一起使用,这些工​​具并非都是基于 .NET 的,原因很明显,Jet/ACE 是基于 COM 的,根据定义,这并不符合要求。具有 .NET 的架构功能。在正确的上下文中使用时,它仍然是一个非常好的数据存储。

以上是关于如何启用对 Access 数据库的多用户访问?的主要内容,如果未能解决你的问题,请参考以下文章

如何立即禁用对软删除或不再启用的用户的访问?

无法将 Dataproc 集群用于具有 GCS 且对用户的访问受限的多用户

从访问 vba 中的多值组合框中获取值

如何取消Access 用户和组权限

在 Microsoft Access 2013 中,如何访问当前 ODBC 连接的用户名?

如何限制对 Access 中某些列的访问