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

解決 SQL Server 2008 R2 附加資料庫「拒絕存取」錯誤 (Error 5120)

     編輯:關於SqlServer

錯誤現象

使用 SSMS 附加資料庫時出現:

無法開啟實體檔案 "X.mdf"。作業系統錯誤 5: "5(拒絕存取。)" (Microsoft SQL Server,錯誤: 5120)

根本原因

SQL Server 服務帳戶 (通常為 NT Service\MSSQLSERVER 或指定網域帳戶) 對 .mdf/.ldf 檔案缺乏讀寫權限。

解決步驟

  1. 在檔案總管中找到 .mdf 檔案 → 右鍵 → 內容
  2. 切換到 安全性 索引標籤
  3. 點選 編輯 → 新增
  4. 輸入物件名稱:NT Service\MSSQLSERVER (預設實例) 或 NT Service\MSSQL$InstanceName (具名實例)
    或指定的網域服務帳戶
  5. 點選 檢查名稱 確認 → 確定
  6. 在權限清單中勾選 完全控制 (或至少「讀取」與「寫入」)
  7. 7. 對 .ldf 記錄檔執行相同操作
  8. 重新嘗試附加資料庫

替代方案:使用 T-SQL 指定檔案路徑

CREATE DATABASE MyDB
ON (FILENAME = 'D:\Data\MyDB.mdf'),
   (FILENAME = 'D:\Log\MyDB_log.ldf')
FOR ATTACH;

同樣需要服務帳戶具備檔案系統權限。

最佳實務

  • 資料庫檔案存放於專用資料夾,設定該資料夾權限而非單一檔案
  • 使用一致的服務帳戶策略 (群組受控服務帳戶 gMSA)
  • 部署腳本中包含 icacls 設定權限步驟
  • 避免將資料庫檔案放在使用者設定檔、桌面等特殊權限資料夾
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved