程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 探索Access數據庫最佳NTFS權限設置

探索Access數據庫最佳NTFS權限設置

編輯:.NET實例教程

我們知道ASP.NET中使用ADO.NET訪問數據庫,通過OleDb的連接可以訪問Access數據庫(我們非常常用的低端數據庫之一)。本文討論了ASP.NET中可能看到的若干錯誤提示,從中可以發現Access 2000和Access XP創建的數據庫文件在訪問出現錯誤時會給出不太相同的錯誤提示。另一個要點是,希望通過此文,使大家對ASP.Net中Access數據庫文件的NTFS權限設置得到新的認識。

  (一)實驗過程

  為了敘述方便,舉個具體例子做實驗:應用程序為/test,數據庫存放在D:\wwwroot\test\data\db1.mdb,我們已經知道在ASP.NET中是以一個叫做ASPNET虛擬用戶的身份訪問數據庫的,我們需要給這個賬戶以特定的NTFS權限才能使ASP.Net程序正常運行。

  為了得到最嚴格的NTFS權限設置,實驗開始時我們給程序最低的NTFS權限:

  a)D:\wwwroot\test\data\文件夾的給用戶ASPNET以如下權限:

 



                   允許  拒絕
完全控制             □    □
修改                 □    □
讀取及運行          √    □
列出文件夾目錄      √    □
讀取                 √    □
寫入                 □    □

 

  b)D:\wwwroot\test\data\db1.mdb文件本身給用戶ASPNET以如下權限:

 


√ 允許將來自父系的可繼承權限傳播給該對象

 

  1.1對於某個只包含有“SELECT”命令的ASPx程序,上述權限設置運行時無障礙,即:上述權限已經滿足這類程序的運行了。

  1.2對於包含有“UPDATE”“INSERT”“UPDATE”等命令的ASPx程序

  (a)如果db1.mdb是Access 2000創建的數據庫,出現如下錯誤:

 


“/test”應用程序中的服務器錯誤

 

--------------------------------------------------------------------------------

Microsoft Jet數據庫引擎打不開文件''D:\wwwroot\test\data\''。它已經被別的用戶以獨占方式打開,或沒有查看數據的權限。
說明:執行當前Web請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息:System.Data.OleDb.OleDbException:Microsoft Jet數據庫引擎打不開文件''D:\wwwroot\test\data\''。它已經被別的用戶以獨占方式打開,或沒有查看數據的權限。

 

  (b)如果db1.mdb是Access XP創建的數據庫,出現如下錯誤:

 


“/test”應用程序中的服務器錯誤

 

--------------------------------------------------------------------------------

操作必須使用一個可更新的查詢。
說明:執行當前Web請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息:System.Data.OleDb.OleDbException:操作必須使用一個可更新的查詢。

 

  (c)原因初步分析:因為包含有“UPDATE”“INSERT”“UPDATE”等命令,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved