揭秘WEB開發(fā)中防止ACCESS數(shù)據(jù)庫被下載的方法(4)_Access數(shù)據(jù)庫教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:談ACCESS轉(zhuǎn)化為SQL SERVER的注意事項(xiàng)1.ACCESS的數(shù)據(jù)庫中的自動編號類型在轉(zhuǎn)化時,sqlserver并沒有將它設(shè)為自動編號型, 2.轉(zhuǎn)化時,跟日期有關(guān)的字段,SQLSERVER默認(rèn)為smalldatetime型,我們最好將它變?yōu)?datetime型,因?yàn)閐atetime型的范圍比smalldatetime型大。我遇見這種情況,用 smalldatetim
1.4 繼續(xù)實(shí)驗(yàn),發(fā)現(xiàn)錯誤已解決,那么上面這個權(quán)限就是我們需要放開的"最低權(quán)限"。
(a) 如果 db1.mdb 是 Access 2000 創(chuàng) 建的數(shù)據(jù)庫,我們會發(fā)現(xiàn)一個小問題:生成的 *.ldb 文件不會自己刪除,訪問后該文件依然存在,但這個 問題不會影響 ASP.NET 的正常運(yùn)行。
(b) 如果 db1.mdb 是 Access XP 創(chuàng)建的 數(shù)據(jù)庫,沒有出現(xiàn)上面類似問題。
(c) 原因初步分析:我們僅僅是給了 ASPNET 以寫入文件夾的權(quán)限,沒有給它修改的權(quán)限 ,所以文件一旦寫入,便無法修改其內(nèi)容,*.ldb 也就刪除不掉了。
如果非要解決這個問題,進(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)限傳播給該 對象
1.5 附帶著,實(shí)驗(yàn)另一種情形:我們把 db1.mdb 在 Acce ss 打開編輯,同時訪問 ASP.NET。
(a) 如果 db1.mdb 是 Access 2000 創(chuàng) 建的數(shù)據(jù)庫,我們發(fā)現(xiàn)并沒有出現(xiàn)什么問題。
(b) 如果 db1.mdb 是 Access XP 創(chuàng)建的 數(shù)據(jù)庫,出現(xiàn)如下錯誤:
"/zhao"應(yīng)用程序中的服務(wù)器錯誤。
------------------------------------------------
不能使用 ;文件已在使用中。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤 以及代碼中導(dǎo)致錯誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.Data.OleDb.OleDbException: 不能使用&nbs p;;文件已在使用中。
(c) 原因初步分析:Access 數(shù)據(jù)庫是單用戶單線程的數(shù)據(jù)庫,我們在 Access&n bsp;里面打開編輯數(shù)據(jù)庫文件時其實(shí)是以當(dāng)前 Windows 用戶(比如Administrator) 身份打開數(shù)據(jù)庫,而 ASP.NET 默認(rèn)使用的是 ASPNET 虛擬用戶(隸屬于 Users 組),級別低于 Administrator,無法和 Adminis trator "搶奪"權(quán)限,所以出現(xiàn)沖突錯誤。至于 Access 2000 忽略 這個問題的情形我們也不必做討論了,可能是 Access 2000 沒有考慮那么多因素吧。& nbsp;
1.6 再附帶一種情形:將 db1.mdb 的屬性改為"只讀",無論是&nbs p;Access 2000 還是 Access XP 都將分別出現(xiàn)與& nbsp;1.2 中各自的錯誤相同的錯誤提示。
(二)實(shí)驗(yàn)結(jié)論
(1) 我們首先再次總結(jié)一下 Access 數(shù)據(jù)庫文件的 NTFS 權(quán) 限設(shè)置的緣起:
在 ASP.NET 中默認(rèn)是以一個叫做 ASPNET& nbsp;的虛擬用戶的身份來訪問、操作數(shù)據(jù)庫的,你可以在"控制面板"-"管理工具"-"計(jì)算機(jī)管理"-"本地用戶和組"-" 用戶"中看到這個用戶,默認(rèn)情況下是:
全名:ASP.NET 計(jì)算機(jī)帳戶&nb sp;
描述為:用于運(yùn)行 ASP.NET&nb sp;輔助進(jìn)程(aspnet_wp.exe)的帳戶。
隸屬于:Users組。
使用這么一個隸屬于 Users 組的用戶來進(jìn)行文件操作、數(shù)據(jù)庫操 作的風(fēng)險是要比用一個 Administrators 組的用戶的風(fēng)險要小得多,這也是 ASP .NET 在安全方面的一個考慮吧。
既然是這么一個用戶需要訪問、操作數(shù)據(jù)庫文件本身,那么我們就需要給它一定的 NTFS 權(quán)限以允許它的訪問。顯然沒有 NTFS 的權(quán)限許可,ASPNET 就無 法訪問、操作數(shù)據(jù)庫,就會出現(xiàn)上面實(shí)驗(yàn)中所看到的那些錯誤了。
(2) 經(jīng)過上面的實(shí)驗(yàn),我們已經(jīng)知道如下的 NTFS 權(quán)限設(shè)置是可以滿足一般需求的:&nb sp;
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)限傳播給該 對象
同時我們也注意到 db1.mdb 是否為"只讀"文件對 ASPNET 的訪問也會 有一定影響。
(3) 上述權(quán)限設(shè)置可以直接設(shè)置給 ASPNET 用戶自己,也可以設(shè)置給 Use rs 組,或者直接給 Everyone 組上述權(quán)限都是可以的。因?yàn)?nbsp;ASPNET 隸屬于 Users 組,可以通過 用戶組 給 ASPNET 設(shè)置權(quán)限。
(4) NTFS 權(quán)限在文件或文件夾右擊后得到的"屬性"對話框-"安全"選項(xiàng)卡中設(shè)置,一般情況下,可 以考慮給 Adminitrators 組以"完全控制"的權(quán)限,同時不要輕易在"拒絕"中打勾,有關(guān)&n bsp;NTFS 權(quán)限設(shè)置的技巧,可以咨詢網(wǎng)絡(luò)管理員、網(wǎng)絡(luò)安全專家的建議。
注:FAT, FAT32 格式的分區(qū)中不支持 NTFS 權(quán)限。 &nb sp;
(5) Windows 2000 系列,Windows Server 2003 系列的"安全"選項(xiàng)卡默認(rèn)是很容易找到的,但 Windows XP Pr ofessional 中的"安全"選項(xiàng)卡默認(rèn)是關(guān)閉的,可以將"控制面板"-"文件夾選項(xiàng)"-"查看"選項(xiàng)卡中的" 高級設(shè)置"中"使用簡單共享(推薦)"一項(xiàng)的"√"去除,"確定"之后,再次按照上面的方法即可看到"安全"選項(xiàng)卡了。&nbs p;
===========
綜上所述,2、3、4法一起使用,是防止數(shù)據(jù)庫被下載最基本,最行之有效的方 法,既適用于對服務(wù)器有管轄權(quán)的網(wǎng)管,又適用于虛擬主機(jī)的用戶,推薦每一個制作者同時必用這三種方法,若你對服務(wù)器擁有管轄權(quán),推薦再加上方法9,你的ACCESS數(shù)據(jù)庫的安全性 就可以大大提高了。
分享:揭秘多表查詢技巧看到大家很多不會多,其實(shí)有個很簡單的辦法具體方法: 打開你的ACCESS 數(shù)據(jù)庫對象(選擇查詢) 添加你要查詢的表,可以是多個 然后選擇他們關(guān)聯(lián)的ID,然后下面選擇你要查詢的表字段 最后在 在空白處右鍵選擇 SQL視圖 得到正確的多表查詢。 作者: jyhjyh 來源:
相關(guān)Access數(shù)據(jù)庫教程:
- Access數(shù)據(jù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報表打印如何自動分頁
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個表并可更新對應(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數(shù)據(jù)庫提示OleDbException (0x80004005): 操作必須使用一個可更新的查詢
- 巧用Access逐條輸出Excel中的記錄
- 處理加了密碼的MDB文件
- 如何在Recordset對象中查詢記錄
- ACCESS的參數(shù)化查詢,附VBSCRIPT(ASP)和C#(ASP.NET)函數(shù)
- Access 2007基礎(chǔ)入門手冊
- Access使用宏控制程序之一個宏的實(shí)例檢驗(yàn)口令
- 解決SQL Server轉(zhuǎn)ACCESS自動編號問題
- Access應(yīng)用的幾個技巧
- 談備份你的改過后綴名的ACCESS數(shù)據(jù)庫
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-揭秘WEB開發(fā)中防止ACCESS數(shù)據(jù)庫被下載的方法(4)
。