徵狀
在 Microsoft SQL Server 2016 和2017啟動期間,如果使用者嘗試 若要在開始之前連線到資料庫,使用者會話可能會造成 資料庫將自動啟動。 發生這種情況時,如果資料庫包含 FileTable 並啟用 FILESTREAM non_transacted_access ,然後資料庫層級 在資料庫啟動後,FileTable 目錄無法存取。 如果您嘗試透過檔案資源管理器存取資料夾,可能表示該資料夾是 得. 當您從命令提示字元執行「dir」命令時,它會傳回「系統找不到指定的檔案」。
此外,您可能會在錯誤記錄中看到下列錯誤,指出使用者會話已觸發資料庫自動啟動:
DateTime 登入錯誤:18456、嚴重性:14、State:38。
DateTime 使用者「 UserName」的登入登入失敗。 原因:無法開啟明確指定的資料庫 ' DatabaseName '。 [用戶端: IPNumber]
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。
解決方案
此問題已在 SQL Server 的下列累積更新中修正:
關於 SQL Server 的累積更新:
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
因應措施
此問題的因應措施是停用並重新啟用資料庫的 FILESTREAM non_transacted_access。
ALTER DATABASE [DatabaseName] 使用 [立即回滾] 設定 SINGLE_USER
ALTER DATABASE [DatabaseName] SET FILESTREAM (NON_TRANSACTED_ACCESS = 關閉)
ALTER DATABASE [DatabaseName] 設定 FILESTREAM (NON_TRANSACTED_ACCESS = FULL)
ALTER DATABASE [DatabaseName] 使用 [立即回滾] 設定 MULTI_USER
參考
瞭解 terminologyMicrosoft 用來描述軟體更新的術語。