錯誤現象
Vista 上安裝 SQL Server 2005 後,在 SSMS 中附加資料庫報錯:
CREATE FILE 遇到作業系統錯誤 5 (拒絕存取)。
嘗試開啟或建立實體檔案 D:\Workspace\MSSQL\Data\DOASDB.mdf 時發生。
根本原因
Vista 引入 UAC (使用者帳戶控制),即使管理員帳戶預設也以**標準權限杠桿**運行。SSMS 需要對資料庫檔案目錄具備寫入/建立權限,標準權限下被阻擋。
解決方法:以管理員身分執行 SSMS
- 開始功能表 → Microsoft SQL Server 2005 → SQL Server Management Studio。
- 右鍵點選 → **「以系統管理員身分執行」** (Run as administrator)。
- UAC 提示點選「是」。
- 在提權後的 SSMS 中再次嘗試附加資料庫,成功。
進階:永久以管理員身分啟動
- 右鍵 SSMS 捷徑 → 「內容」→ 「相容性」頁籤。
- 勾選「以系統管理員身分執行這個程式」→ 確定。
- 後續雙擊捷徑即自動提權。
同理可證場景
- 建立/還原資料庫檔案至受保護目錄 (Program Files、Windows、系統磁碟根目錄)。
- 啟用/停用 SQL Server 服務、變更服務帳戶。
- 執行
xp_cmdshell、sp_OA* 等需 OS 權限的擴展預存程序。
最佳實踐
- 資料庫檔案放置於非系統盤、非受保護資料夾 (如
D:\SQLData),並授予 SQL Server 服務帳戶 **完全控制** 權限。
- 日常開發使用標準帳戶,僅在需提權操作時右鍵「以管理員身分執行」。
- 生產環境建議關閉 UAC 或透過群組策略精細配置,避免服務啟動失敗。