Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

解決 ASP「資料庫或物件為唯讀」錯誤:權限設定完整指南

編輯:關於伺服器

錯誤現象

執行寫入 Access 資料庫操作時拋出:

Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC Microsoft Access Driver] 無法更新。資料庫或物件為唯讀。

根本原因

Access 寫入時需在同目錄建立 .ldb 鎖定檔。若 IIS 匿名使用者帳號 (IUSR_電腦名) 對資料庫所在目錄缺乏「寫入」權限,即無法建立鎖定檔,導致錯誤。

常見誤區與錯誤做法

  • 只移除資料庫檔案「唯讀」屬性 → 上傳後伺服器仍可能因繼承權限導致不可寫。
  • 從唯讀目錄 (如光碟、壓縮包) 直接移動到可寫目錄 → 權限未正確重置。
  • 給 Everyone 完全控制 → 極度危險,開放所有使用者存取。

正確解決步驟 (以 IIS 6.0 為例)

  1. 找到資料庫所在目錄 (或其上層可繼承權限的目錄)。
  2. 右鍵 → 「內容」→ 「安全性」頁籤 → 「編輯」→ 「新增」。
  3. 點選「進階」→ 「立即尋找」→ 找到 IUSR_電腦名 (格式固定)。
  4. 選中該帳號 → 確定返回權限設定視窗。
  5. 在權限列表中,除預設「讀取與執行」、「列出資料夾內容」、「讀取」外,勾選「寫入」。
  6. 點選「套用」→ 「確定」完成。

虛擬主機環境補充

若為虛擬主機,匿名使用者帳號可能非預設 IUSR_電腦名,請洽詢主機商確認正確帳號名稱再授權。

驗證方式

重新執行寫入頁面,若不再報錯即設定成功。建議同步檢查 .ldb 檔案能否正常建立/刪除。

Copyright © Windows教程網 All Rights Reserved