防止ACCESS數(shù)據(jù)庫被下載的9種方法(3)_Access數(shù)據(jù)庫教程
推薦:高手支招ASP及Access的安全隱患及對策 隨著Internet的發(fā)展,Web技術(shù)日新月異。繼通用網(wǎng)關(guān)接口(CGI)之后,“ASP”作為一種典型的服務(wù)器端網(wǎng)頁設(shè)計(jì)技術(shù),被廣泛地應(yīng)用在網(wǎng)上銀行、電子商務(wù)、搜索引擎等各種互聯(lián)網(wǎng)應(yīng)用
9.利用NTFS分區(qū)的文件權(quán)限設(shè)置(by percyboy)
我們已經(jīng)知道,ASP.NET 中使用 ADO.NET 訪問數(shù)據(jù)庫,通過 OleDb 的連接可以訪問 Access 數(shù)據(jù)庫— —我們非常常用的低端數(shù)據(jù)庫之一。本文討論了 ASP.NET 中可能看到的若干錯(cuò)誤提示,從中看到&nb sp;Access 2000 和 Access XP 創(chuàng)建的數(shù)據(jù)庫文件 ,在訪問出現(xiàn)錯(cuò)誤時(shí)會(huì)出現(xiàn)不太相同的錯(cuò)誤提示。希望對大家有所幫助。另一個(gè)要點(diǎn)是,希望通過此文,使大家對 ASP. NET 中 Access 數(shù)據(jù)庫文件的 NTFS 權(quán)限設(shè)置有所新的認(rèn)識(shí) .
(一)實(shí)驗(yàn)過程
為了敘述方便,舉個(gè)具體例子做個(gè)實(shí)驗(yàn):應(yīng)用程序?yàn)?/test ,數(shù)據(jù)庫存放在 D:\wwwr oot\test\data\db1.mdb,我們已經(jīng)知道在 ASP.NET 中是以一個(gè)叫做 ;ASPNET 虛擬用戶的身份訪問數(shù)據(jù)庫的,我們需要給這個(gè)賬戶以特定的 NTFS 權(quán)限才能 使 ASP.NET 程序正常運(yùn)行。
為了得到最嚴(yán)格的 NTFS 權(quán)限設(shè)置,實(shí)驗(yàn)開始時(shí)我們給程序最低的 NTFS 權(quán)限 :
a) D:\wwwroot\test\data\ 文件夾的給用戶ASPNET 以如下權(quán)限:允許 拒絕完全控制 &n bsp; □ & nbsp;□修改 &nbs p; &nbs p;□ □讀取及運(yùn)行 & nbsp; √ □ ;列出文件夾目錄 ; √ □讀取 &nbs p; &nbs p;√ □寫入 &nbs p; &nbs p;□ □
b) D:\wwwroot\test\data\db1.mdb 文件本身給用戶ASPNET以如下權(quán)限:√ 允許將來自父系的可繼承權(quán)限傳播給該 對象
1.1 對于某個(gè)只包含有"SELECT"命令的aspx程序,上述權(quán)限設(shè)置運(yùn)行時(shí)無障礙,即:上述權(quán)限 已經(jīng)滿足這類程序的運(yùn)行了。
1.2 對于包含有"UPDATE""INSERT""UPDATE"等命令的aspx程序, ;
�。╝) 如果 db1.mdb 是 Access 2000 創(chuàng) 建的數(shù)據(jù)庫,出現(xiàn)如下錯(cuò)誤:
"/test"應(yīng)用程序中的服務(wù)器錯(cuò)誤。
---------------------------------------
Microsoft Jet 數(shù)據(jù)庫引擎打不開文件D:\wwwroot\test\data\.&n bsp;它已經(jīng)被別的用戶以獨(dú)占方式打開,或沒有查看數(shù)據(jù)的權(quán)限。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤 以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.Data.OleDb.OleDbException: Microsof t Jet 數(shù)據(jù)庫引擎打不開文件D:\wwwroot\test\data\. 它已經(jīng)被 別的用戶以獨(dú)占方式打開,或沒有查看數(shù)據(jù)的權(quán)限。
(b) 如果 db1.mdb 是 Access XP 創(chuàng)建的 數(shù)據(jù)庫,出現(xiàn)如下錯(cuò)誤:
"/test"應(yīng)用程序中的服務(wù)器錯(cuò)誤。
----------------------------------------------
操作必須使用一個(gè)可更新的查詢。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤 以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.Data.OleDb.OleDbException: 操作必須使用一個(gè) 可更新的查詢。
�。╟) 原因初步分析:因?yàn)榘?quot;UPDATE""INSERT""UPDATE"等命令,需要對數(shù)據(jù)庫文件本身進(jìn) 行寫入操作,所以上述權(quán)限不能滿足此需求,我們需要進(jìn)一步放開權(quán)限。
我們放開一些權(quán)限,a) D:\wwwroot\test\data\ 文件夾不變: & nbsp;
b) D:\wwwroot\test\data\db1.mdb 文件本身給用戶ASPNET以如下權(quán)限:允許 拒絕完全控制 &n bsp; □ & nbsp;□修改 &nbs p; &nbs p;□ □讀取及運(yùn)行 & nbsp; √ □ ;列出文件夾目錄 ; √ □讀取 &nbs p; &nbs p;√ □寫入 &nbs p; &nbs p;√ □
1.3 放開權(quán)限后繼續(xù)實(shí)驗(yàn),
(a) 如果 db1.mdb 是 Access 2000 創(chuàng) 建的數(shù)據(jù)庫,出現(xiàn)如下錯(cuò)誤:
"/test"應(yīng)用程序中的服務(wù)器錯(cuò)誤。
------------------------------------------
不能鎖定文件。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤 以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.Data.OleDb.OleDbException: 不能鎖定文件。& nbsp;
�。╞) 如果 db1.mdb 是 Access XP 創(chuàng)建的 數(shù)據(jù)庫,沒有出現(xiàn)錯(cuò)誤。
(c) 原因初步分析:我們發(fā)現(xiàn)在打開 Access 數(shù)據(jù)庫時(shí),同時(shí)會(huì)在所在目錄生成一個(gè)同名 的 *.ldb 文件,這是一個(gè) Access 的鎖定標(biāo)記。鑒于此,我們猜測,用戶 ASPNET 訪問 Access 數(shù)據(jù)庫時(shí),也需要生成一個(gè)鎖定標(biāo)記,而該目錄沒 有允許其寫入,因此出錯(cuò)。至于 Access XP 創(chuàng)建的數(shù)據(jù)庫為什么沒有這個(gè)錯(cuò)誤,原因還不 得而知。
我們進(jìn)一步放開權(quán)限,a) D:\wwwroot\test\data\ 文件夾給用戶ASPNET以 如下權(quán)限:允許 拒絕完全控制 &n bsp; □ & nbsp;□修改 &nbs p; &nbs p;□ □讀取及運(yùn)行 & nbsp; √ □ ;列出文件夾目錄 ; √ □讀取 &nbs p; &nbs p;√ □寫入 &nbs p; &nbs p;√ □
b) D:\wwwroot\test\data\db1.mdb 文件本身給用戶ASPNET以如下權(quán)限:√ 允許將來自父系的可繼承權(quán)限傳播給該 對象
分享:ASP完美轉(zhuǎn)化ACCESS為SQL數(shù)據(jù)庫連接其實(shí)兩者基本通用 步驟很簡單3步: 1,轉(zhuǎn)化MDB數(shù)據(jù)庫到SQL SQL工具里就有 2, 更改數(shù)據(jù)庫鏈接字串 以下為代碼: 以下為引用的內(nèi)容: Set Conn=Server.
- Access數(shù)據(jù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報(bào)表打印如何自動(dòng)分頁
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個(gè)表并可更新對應(yīng)的字段值具體實(shí)現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準(zhǔn)則進(jìn)行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計(jì)數(shù)據(jù)庫
- 中文Access2000速成教程--1.3 在“設(shè)計(jì)”視圖中設(shè)計(jì)表
Access數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫教程推薦
猜你也喜歡看這些
- 解析ACCESS作為網(wǎng)站數(shù)據(jù)庫的弊端
- 將Access數(shù)據(jù)庫移植到SQL Server 7.0
- 淺談Access數(shù)據(jù)庫用另一種方式管理密碼
- 談Access為后臺(tái)數(shù)據(jù)庫的網(wǎng)站統(tǒng)計(jì)系統(tǒng)
- 解讀ACCESS的參數(shù)化查詢
- 解讀八種方法防止數(shù)據(jù)庫被下載
- ACCESS數(shù)據(jù)訪問頁配置實(shí)例
- Access的特點(diǎn)
- 中文Access2000速成教程--1.5 使用已有的數(shù)據(jù)自動(dòng)建新表
- Access數(shù)據(jù)庫數(shù)據(jù)傳遞的方法
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-防止ACCESS數(shù)據(jù)庫被下載的9種方法(3)
。