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

SQL Server 附加資料庫失敗:兩大經典解決方案 (預設資料目錄 / Windows 驗證)

     編輯:關於SqlServer

在 SSMS 執行「附加」資料庫時彈出錯誤對話框,常見原因為檔案路徑權限不足或驗證模式權限不匹配。本文提供兩個經驗證有效的快速解決方案。

錯誤現象

右鍵「資料庫」→「附加」→ 選取 `.mdf` → 確定 → 報錯 (如權限拒絕、找不到檔案、存取被拒等)。

附加資料庫錯誤對話框

方法一:將 MDF/LDF 移至 SQL Server 預設資料目錄 (最推薦)

  1. 確認預設資料路徑:SSMS → 伺服器屬性 → 資料庫設定 → 預設資料檔案位置 (通常為 `C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\DATA\`)。
  2. 2. 將 `.mdf`、`.ldf` 複製/移動至該目錄。 3. 重新執行附加操作,通常即可成功。

原理: SQL Server 服務帳號對預設資料目錄擁有完整權限,避免跨目錄 ACL 問題。

方法二:使用 Windows 整合驗證登入 SSMS 執行附加

  1. 登出目前 SQL Server 驗證 (sa/混合模式) 連線。
  2. 2. 以 Windows 驗證 連入 SSMS (需為本機 Administrators 群組成員或 sysadmin 角色)。 3. 執行附加操作。

原理: Windows 整合驗證下,SSMS 以目前登入使用者的安全權杖執行附加作業,權限通常高於 SQL 服務帳號,可繞過部分檔案系統 ACL 限制。

進階排查 (若上述無效)

  • 檢查 `.mdf`/.`ldf` 是否被其他程式鎖定 (Resource Monitor → CPU → 關聯控制代碼搜尋檔名)。
  • 確認檔案版本相容:低版本建立的資料庫可附加至高版本,反之不可 (SQL 2014 不能附加 SQL 2016 建立的檔案)。
  • 嘗試 T-SQL 附加獲取詳細錯誤碼:
    CREATE DATABASE MyDB ON (FILENAME='C:\Data\MyDB.mdf'), (FILENAME='C:\Data\MyDB_log.ldf') FOR ATTACH;
  • 檢查 SQL Server 錯誤記錄檔 (`ERRORLOG`) 對應時間點的詳細訊息。

優先使用「移至預設目錄 + Windows 驗證」雙重保障,可解決絕大多數附加失敗情境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved