執行 CREATE DATABASE ... FOR ATTACH 或 SSMS 圖形界面附加數據庫時,報錯:
無法打開物理文件 "D:\Data\MyDB.mdf",作業系統錯誤 5:"5(拒絕訪問)"。錯誤:5120。
SQL Server 服務啟動帳戶(通常是 NT Service\MSSQLSERVER 或自定義域帳戶)對 .mdf/.ldf 文件所在目錄缺乏 NTFS 讀寫權限。
Everyone(或服務帳戶) → 確定。$folder = "D:\Data"
$acl = Get-Acl $folder
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
"Everyone", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
Set-Acl $folder $acl
DOMAIN\SQLSvc)並授予最小權限(讀寫、列出資料夾)。sp_helpfile 或 sys.master_files 確認文件路徑後,再批量設權限。DBCC CHECKDB 離線檢查,排除文件本身損壞。| 錯誤碼 | 含義 | 常見原因 |
|---|---|---|
| 5120 | 無法打開物理文件 | NTFS 權限不足、路徑錯誤、文件被佔用 |
| 5123 | CREATE FILE 遇到 OS 錯誤 | 路徑不存在、磁盤滿、權限 |
| 1813 | 無法打開新數據庫 | 附加失敗的通用封裝錯誤 |