首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 資料庫附加後顯示「唯讀」錯誤 5120 解決方案

     編輯:關於SqlServer

問題現象

將資料庫檔案(.mdf/.ldf)移動至新磁碟後重新附加,資料庫屬性顯示「資料庫為唯讀」= True。嘗試在 SSMS 屬性頁將其改為 False,彈出錯誤 5120:
「無法開啟實體檔案 ... 作業系統錯誤 5:存取被拒。」

資料庫唯讀狀態

錯誤 5120

根因分析

錯誤 5120 為檔案系統權限問題。移動檔案後,SQL Server 服務帳號(或啟動帳號)對新路徑下的 .mdf/.ldf 缺乏「完全控制」權限,導致無法寫入,資料庫只能以唯讀模式掛載。

解決步驟

  1. 在檔案總管找到目標資料庫的 .mdf 與 .ldf 檔案。
  2. 右鍵 → 「內容」 → 「安全性」頁簽。
  3. 點選「編輯」→「新增」→ 輸入 Authenticated Users(或具體 SQL Server 服務帳號,如 NT SERVICE\MSSQLSERVER)。
  4. 授與 完全控制 權限,確認套用。
  5. 檔案權限設定
  6. 回到 SSMS,重新整理資料庫屬性,將「資料庫為唯讀」設為 False,即可恢復正常讀寫。
  7. 修改成功

最佳實踐補充

  • 生產環境建議直接授權給 SQL Server 服務啟動帳號(NT SERVICE\MSSQL$INSTANCE),避免使用廣泛的 Authenticated Users。
  • 使用 ALTER DATABASE ... SET READ_WRITE T-SQL 指令同樣可切換,但前提同樣需檔案權限正確。
  • 移動資料庫檔案標準流程:ALTER DATABASE ... SET OFFLINE → 移動檔案 → ALTER DATABASE ... MODIFY FILE 更新路徑 → SET ONLINE,可避免分離/附加帶來的權限遺失。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved