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

SQL Server 2005 附加資料庫 Read-Only 錯誤解決方案:兩種修正路徑與權限修復

     編輯:關於SqlServer

錯誤現象

使用 SSMS 附加 .mdf 檔案時提示「Read-Only」,但檔案屬性中「唯讀」核取方塊未勾選。附加成功後資料庫名稱後顯示 (Read-Only),無法寫入資料。

方案一:切換驗證模式重新附加(最快)

  1. 關閉 SSMS 重新開啟
  2. 登入時選擇 Windows Authentication(而非 SQL Server Authentication)
  3. 重新執行附加操作,Read-Only 標記消失

原理:SQL 驗證模式下,服務帳號可能無檔案系統寫入權限;Windows 驗證使用當前使用者權限,通常具備完整存取權。

方案二:檔案系統權限授權(根治)

  1. 右鍵 .mdf/.ldf 檔案 → 內容 → 安全性 索引標籤
  2. 若無「安全性」索引標籤:
    開啟「我的電腦」→ 工具 → 資料夾選項 → 檢視 → 取消勾選「使用簡單檔案共享」
  3. 編輯權限:
    選擇「群組或使用者名稱」清單中的各項 → 全部勾選「允許」完全控制
  4. 點確定套用

檔案安全性權限設定

後續修正:移除資料庫 Read-Only 標記

權限修正後,執行以下 T-SQL 移除資料庫層級唯讀狀態:


EXEC sp_dboption '資料庫名稱', 'read only', 'FALSE';
-- 或
ALTER DATABASE [資料庫名稱] SET READ_WRITE;

執行後重新整理物件總管,資料庫名稱後的 (Read-Only) 標記消失。

替代方案:刪除重新附加

若上述無效:
1. SSMS 中刪除已附加的 Read-Only 資料庫
2. 確認檔案權限正確後重新附加

根因總結

層面原因解決
檔案系統.mdf/.ldf 權限不足(服務帳號無寫入權)授權完全控制
資料庫引擎偵測到檔案不可寫,自動標記 Read-Onlysp_dboption 移除標記
連線驗證SQL 驗證使用服務帳號,權限受限改用 Windows 驗證附加

最佳實踐

  1. 附加前先檢查檔案權限,確保 SQL Server 服務帳號(或當前 Windows 使用者)具備完全控制
  2. 生產環境建議資料檔案放置於專用磁碟,設定專用服務帳號權限
  3. 遷移資料庫時優先使用 BACKUP/RESTORE 而非附加/分離,避免權限與相容性問題
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved