在 SSMS 執行「附加」資料庫時彈出錯誤對話框,常見原因為檔案路徑權限不足或驗證模式權限不匹配。本文提供兩個經驗證有效的快速解決方案。
錯誤現象
右鍵「資料庫」→「附加」→ 選取 `.mdf` → 確定 → 報錯 (如權限拒絕、找不到檔案、存取被拒等)。

方法一:將 MDF/LDF 移至 SQL Server 預設資料目錄 (最推薦)
- 確認預設資料路徑:SSMS → 伺服器屬性 → 資料庫設定 → 預設資料檔案位置 (通常為 `C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\DATA\`)。
2. 將 `.mdf`、`.ldf` 複製/移動至該目錄。
3. 重新執行附加操作,通常即可成功。
原理: SQL Server 服務帳號對預設資料目錄擁有完整權限,避免跨目錄 ACL 問題。
方法二:使用 Windows 整合驗證登入 SSMS 執行附加
- 登出目前 SQL Server 驗證 (sa/混合模式) 連線。
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 驗證」雙重保障,可解決絕大多數附加失敗情境。