(一)實驗過程
為了敘述方便,舉個具體例子做個實驗:應用程序為 /test ,數據庫存放在 D:wwwr oot estdatadb1.mdb,我們已經知道在 ASP.NET 中是以一個叫做 ;ASPNET 虛擬用戶的身份訪問數據庫的,我們需要給這個賬戶以特定的 NTFS 權限才能 使 ASP.NET 程序正常運行。
為了得到最嚴格的 NTFS 權限設置,實驗開始時我們給程序最低的 NTFS 權限 :
a) D:wwwroot estdata 文件夾的給用戶ASPNET 以如下權限:
允許 拒絕
完全控制 &n bsp; □ □
修改 □ □
讀取及運行 √ □ ;
列出文件夾目錄 ; √ □
讀取 √ □
寫入 □ □
b) D:wwwroot estdatadb1.mdb 文件本身給用戶ASPNET以如下權限:
√ 允許將來自父系的可繼承權限傳播給該 對象
1.1 對於某個只包含有"SELECT"命令的aspx程序,上述權限設置運行時無障礙,即:上述權限 已經滿足這類程序的運行了。
1.2 對於包含有"UPDATE""INSERT""UPDATE"等命令的aspx程序, ;
(a) 如果 db1.mdb 是 Access 2000 創 建的數據庫,出現如下錯誤:
"/test"應用程序中的服務器錯誤。
---------------------------------------
Microsoft Jet 數據庫引擎打不開文件'D:wwwroot estdata'。&n bsp;它已經被別的用戶以獨占方式打開,或沒有查看數據的權限。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤 以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Data.OleDb.OleDbException: Microsof t Jet 數據庫引擎打不開文件'D:wwwroot estdata'。 它已經被 別的用戶以獨占方式打開,或沒有查看數據的權限。
(b) 如果 db1.mdb 是 Access XP 創建的 數據庫,出現如下錯誤:
"/test"應用程序中的服務器錯誤。
----------------------------------------------
操作必須使用一個可更新的查詢。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤 以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Data.OleDb.OleDbException: 操作必須使用一個 可更新的查詢。
(c) 原因初步分析:因為包含有"UPDATE""INSERT""UPDATE"等命令,需要對數據庫文件本身進 行寫入操作,所以上述權限不能滿足此需求,我們需要進一步放開權限。
我們放開一些權限,
a) D:wwwroot estdata 文件夾不變:
b) D:wwwroot estdatadb1.mdb 文件本身給用戶ASPNET以如下權限:
允許 拒絕
完全控制 &n bsp; □ □
修改 □ □
讀取及運行 √ □ ;
列出文件夾目錄 ; √ □
讀取 √ □
寫入 √ □轉載保留: 。