Sql-Server

無法在 Microsoft SQL Server 文件表文件夾中打開 Microsoft Access 數據庫

  • July 15, 2020

我們最近開始將文件伺服器上的數據遷移到 SQL Server(版本 14)文件表,我遇到了 MS Access 數據庫(.accdb,Access 2007)的問題。

當 .accdb 文件位於伺服器上的“普通”Windows 共享文件夾中時,我可以毫無問題地打開它。當我將相同的文件複製到 Filetable 文件夾中時,我得到一個異常,即數據庫被未知使用者鎖定並且無法打開或鎖定。

我測試的所有其他文件類型在 Filetable 共享上都可以正常工作。

使用者使用伺服器上的本地帳戶登錄文件共享,我已將此帳戶的權限添加到 SQL Server。對於位於 Filetables 中的 MS Access 數據庫的權限是否有不同的考慮?

您不能在非 SMB 網路儲存上使用多使用者 Access 數據庫(事實上,在修復此錯誤之前,除非您避免租賃,否則您也無法可靠地在 SMB 網路儲存上使用 Access 數據庫)。

Access 數據庫要求對文件進行許多小規模寫入,並且允許對文件進行部分鎖定。然而,大多數網路儲存解決方案只支持鎖定整個文件,不支持小寫入或在支持時性能很差,或者在本地記憶體數據並在多個使用者嘗試使用同一個數據庫時導致嚴重的並發問題。

這與其他類型的文件非常不同,在其他類型的文件中,通常會鎖定整個文件,在保存之前根本不寫入,並在保存時覆蓋整個文件(例如 Excel)。這些文件在文件表上做得很好。

不幸的是,你將不得不重新考慮你的方法,因為我認為它永遠不會奏效。您可能希望為使用禁用租賃的 SMB 的 Access 提供專用文件共享(或者只是將您的 Access 數據遷移到 SQL 伺服器並為每個使用者使用連結表和數據庫的本地副本)

引用自:https://dba.stackexchange.com/questions/254324