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

SQL Server 2008/2012 附加資料庫報錯 5123 (拒絕存取) 完整解決方案

     編輯:SQL Server 2005

錯誤訊息

嘗試開啟實體檔案 D:\Data\ejiaOA.mdf 時,CreateFile 遇到系統錯誤 5 (拒絕存取)。(Microsoft SQL Server, 錯誤: 5123)

方法一:移動檔案至預設 Data 目錄

C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\

SQL 服務帳戶對此目錄擁有完整權限,直接附加即可。

方法二:授予檔案/資料夾權限 (推薦)

  1. 右鍵 MDF/LDF 檔案或其父資料夾 →「內容」→「安全性」→「編輯」→「新增」。
  2. 「進階」→「立即尋找」→ 選取 Authenticated Users (或服務帳戶 MSSQL$SQLEXPRESS) → 確定。
  3. 勾選「完全控制」→ 確定套用。

進階案例:Windows 身分驗證 vs SQL 驗證

實測發現:以 Windows 管理員登入 SSMS 附加失敗;改用 sa (SQL 驗證) 登入後附加成功。原因在於 Windows 登入時,附加動作由 目前互動使用者 的安全性語境執行檔案存取,而非 SQL 服務帳戶;sa 登入則由服務帳戶執行,權限正確。

根本原因補充

  • SQL Server 啟動帳戶 (System/網域帳戶) 對資料檔目錄缺乏權限。
  • Win7/2008+ 資料夾權限不自動繼承至子檔案,需檢查檔案層級 ACL。
  • 服務帳戶可在「服務」→「登入」分頁查看/變更。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved