Access 数据库中的同时连接

问题描述 投票:0回答:1

问题:
我有两个应用程序,一个是桌面应用程序,一个是 Web 应用程序,它们连接到同一个访问数据库(我知道这不是最好的,但桌面应用程序是几年前开发的,目前不可能更改)。

当dekstop应用程序打开(从而连接到数据库)时,Web应用程序无法连接(它是用php开发的,显示错误500)。另一方面,当桌面应用程序关闭时,网络应用程序中的一切都可以正常工作。

问题:
此时我想知道是否可以使用access数据库进行模拟连接,如果可以,写入或读取数据是否有限制。

我尝试寻找相关信息,但没有任何帮助。

php ms-access database-connection simultaneous
1个回答
0
投票

您没有注意到连接的外观,但多用户需要一些东西。首先,服务器和桌面需要对数据库文件的文件夹具有完全权限,其中包括文件创建权限。

当用户(任何程序)打开数据库时,就会创建一个锁定文件。如果无法创建该锁定文件,则数据库将以只读方式打开。

并且您不想以“独占”方式打开数据库(从 Access 或 Web 服务器)。同样,这会导致单用户模式。

所以,服务器或Access桌面最好不要以独占方式打开。

所以,我们看不到服务器端连接,但是从 Access 中,当您打开数据库时,您会看到以下内容:

因此,很容易以“独占”方式打开文件,从而导致单用户。

如上所述,应该存在文件创建权限,实际上应该存在文件夹的删除权限,因为如上所述,进入数据库的第一个用户需要创建该“锁定文件”。由于没有真正的“数据库服务器”,因此当第一个用户打开数据库时会创建一个锁定文件。如果此类用户无法使用数据库在该文件夹中创建文件,那么您最终会处于只读且通常是单用户模式。

另一个需要注意的问题是,当桌面用户打开文件时,会创建锁定文件,并且通常会根据文件权限使用当前用户内容创建文件 - 如果此类用户“权限”附加到一个用户,然后新创建的锁定文件的文件夹权限通常可以限制为一个用户 - 这又会导致单用户模式,或者通常对其他人只读。

因此,两个系统(用户和 Web 服务器)都需要对该文件夹的完全权限,其中包括文件创建权限,在大多数情况下,甚至还需要文件删除权限,从那时起,当最后一个用户退出时,(ldb扩展名)锁定文件无法删除。

© www.soinside.com 2019 - 2024. All rights reserved.