Sql-Server

當共享權限從“所有人”更改時,為什麼數據庫會進入“恢復掛起”狀態?

  • December 18, 2018

昨天我們遇到了電源故障,在電源恢復後,我們在 SQL 上的財務數據庫確實進入了“恢復掛起”狀態。經過一段時間的掙扎,我記得幾天前我們確實將數據庫目錄的共享權限從“everyone”更改為某些使用者,並嘗試將權限恢復為“everyone”,幾分鐘後一切正常.

讓我想起此目錄共享權限更改的是事件日誌中的這些錯誤消息:

FileMgr::StartLogFiles: 創建或打開文件 ‘\SERVER\xxx.ldf’ 時出現作業系統錯誤 2(系統找不到指定的文件。)。診斷並糾正作業系統錯誤,然後重試操作。

FCB::Open failed: 無法為文件號 1 打開文件 \SERVER\xx._MS。作業系統錯誤:5(訪問被拒絕。)。

為什麼會這樣?

這聽起來像是一個簡單的權限問題。

為什麼會這樣?

每個人的權限實際上允許任何人連接到這些網路共享並訪問這些文件。當您刪除這些權限時,現在不允許任何人訪問它們。可能令人困惑的是,您可能認為 SQL Server 可以訪問這些文件和共享,而實際上它並沒有。

為了允許對通過 SMB 共享執行的那些數據庫進行特定訪問(從 Microsoft SQL Server 2012 開始),Microsoft 建議 SQL Server 服務作為 a 執行,<domain name>\<user name>並且此帳戶對文件共享具有完全控制權,並且對基礎文件具有 NTFS 權限,並且/ 或該文件共享中的目錄。

或者,Microsoft 建議如果您使用系統帳戶而不是 SQL Server 服務帳戶,則對帳戶應用 FULL CONTROL 共享和 NTFS 權限——其中<domain_name>\<computer_name>$電腦名是 SQL Server 的電腦名。

我會在測試環境中再次嘗試刪除那些“所有人”權限,以驗證這是否解決了您的問題。

有關更多詳細資訊,請參閱:

https://msdn.microsoft.com/en-us/library/hh759341.aspx

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