Access安全性之QA詳解
Q MDB我用[啟動(dòng)]的所有選項(xiàng)都 False,用封面表單啟動(dòng),同個(gè)工作組的用戶(hù)沒(méi)授權(quán)是不能開(kāi)打表修改,但他可以另建一個(gè)空數(shù)據(jù)庫(kù),進(jìn)行導(dǎo)入或鏈接進(jìn)行修改,如何防范?請(qǐng)賜教!
A 首先應(yīng)該用MS Access Workgroup Administrator程序建立自己腗DW文件,比如newSystem.mdw,然后建立一個(gè)新的帳號(hào)比如newAdmin,缺省的有AMDIN和,比如GUEST帳號(hào),然后設(shè)置各個(gè)帳號(hào)的密碼。然后以newAdmin帳號(hào)登陸,建立數(shù)據(jù)庫(kù),或者導(dǎo)入現(xiàn)有的數(shù)據(jù)庫(kù)中的表或窗體等進(jìn)行開(kāi)發(fā)。對(duì)數(shù)據(jù)庫(kù)的安全性進(jìn)行設(shè)置。除了newadmin帳號(hào),將所有的組和用戶(hù)對(duì)該數(shù)據(jù)庫(kù)的打開(kāi)權(quán)限都屏蔽掉,其它權(quán)限也宜屏蔽掉。這樣的話(huà)安全了。這樣的話(huà)打開(kāi)該數(shù)據(jù)庫(kù)只能關(guān)聯(lián)上新建的MDW文件,使用newAdmin帳號(hào)才能打開(kāi)。但是實(shí)際應(yīng)用時(shí)當(dāng)然還應(yīng)該建立一個(gè)運(yùn)行軟件的帳號(hào),比如newUser,(最好不要用缺省的“用戶(hù)”帳號(hào),這樣關(guān)聯(lián)到SYSTEM。MDW上就可以進(jìn)入,即使你設(shè)置密碼也不安全,因?yàn)镃OPY一個(gè)新的SYSTEM。MDW一樣可以關(guān)聯(lián)。)將newUser帳號(hào)對(duì)各個(gè)表的權(quán)限相應(yīng)的設(shè)置,能讀寫(xiě),不能修改設(shè)計(jì),對(duì)窗體只能運(yùn)行即可,總之它是用來(lái)運(yùn)行的。屏蔽一切可以修改的權(quán)限。這樣的話(huà)開(kāi)發(fā)和運(yùn)行就是兩個(gè)帳號(hào),但是新的問(wèn)題就是如果就這樣交給用戶(hù)使用,那么用戶(hù)就必須知道newUser帳號(hào)的密碼,那樣的話(huà)數(shù)據(jù)就又不安全了,所以還應(yīng)該用VB或者DELPHI做個(gè)套子,最簡(jiǎn)單的寫(xiě)上一句,運(yùn)行該數(shù)據(jù)庫(kù)就行了,比如:strRunShell = "c:\Program Files\Microsoft Office\Office\MSACCESS.EXE /nostartup"
strRunShell = strRunShell & "/wrkgrp c:\newSystem.mdw c:\pinewood.mde /user newUser /PWD yourpassword"
RetVal = Shell(strRunShell, vbMaximizedFocus)
當(dāng)然這只是個(gè)意思,在這套子里寫(xiě)寫(xiě)別的也可以,比如檢查ACCESS是否安裝了,路徑是不是對(duì),是不是注冊(cè)了等等。(附:用另外一個(gè)已經(jīng)編譯成MDE文件的數(shù)據(jù)庫(kù)也可以達(dá)到如上效果)
Q 用戶(hù)安全組我也用過(guò),但是我指的安全性主要針對(duì)內(nèi)部人員,外面的高手如林,根本不要談安全性了。
ACCESS有個(gè)致命的毛病(或許我還不會(huì)用),它的安全性性能只能用在當(dāng)前已設(shè)安全機(jī)制的數(shù)據(jù)庫(kù),對(duì)用戶(hù)新建的數(shù)據(jù)庫(kù)根本無(wú)用,用戶(hù)只需用他的帳戶(hù)登錄ACCESS,新建一個(gè)*.MDB,再用鏈接功能即可把后端數(shù)據(jù)庫(kù)的表都鏈接起來(lái)(或者前端數(shù)據(jù)庫(kù)也可,因?yàn)榍岸藬?shù)據(jù)庫(kù)的表是鏈接再后端數(shù)據(jù)庫(kù)的表上,他無(wú)非是再鏈接而已),他只要看懂表的內(nèi)容,就可以任意修改了。
其實(shí)微軟稍改ACCESS讓它的安全機(jī)制適用所有的數(shù)據(jù)庫(kù)而不是當(dāng)前數(shù)據(jù)庫(kù),我們就不用傷腦筋去防范一些初哥兒們,作為我們使用安全機(jī)制無(wú)非也就防范這些內(nèi)部使用者的非法修改、破壞而已。
所以我們需要ACCESS系統(tǒng)級(jí)安全機(jī)制或office developer edition也有一定的幫助
A 錯(cuò)錯(cuò)錯(cuò),“用戶(hù)只需用他的帳戶(hù)登錄ACCESS,新建一個(gè)*.MDB,再用鏈接功能即可把后端數(shù)據(jù)庫(kù)的表都鏈接起來(lái)(或者前端數(shù)據(jù)庫(kù)也可,因?yàn)榍岸藬?shù)據(jù)庫(kù)的表是鏈接再后端數(shù)據(jù)庫(kù)的表上,他無(wú)非是再鏈接而已),他只要看懂表的內(nèi)容,就可以任意修改了。”
這段話(huà)錯(cuò)!如果ACCESS的安全性真的象賢弟所說(shuō)的,那我所貼的那些可能都是空談了。你可能還是沒(méi)有按照我說(shuō)貼的實(shí)踐一番。事實(shí)上是不會(huì)那樣的,因?yàn)槲沂切聞?chuàng)建的系統(tǒng)文件(即MDW文件),關(guān)聯(lián)到新的系統(tǒng)文件創(chuàng)建數(shù)據(jù)庫(kù),而此數(shù)據(jù)庫(kù)的打開(kāi)權(quán)限只能由我指定的固定的用戶(hù)比如NEWUSER才有,所以別人,不管關(guān)聯(lián)到什么系統(tǒng)文件上都是無(wú)法用新建的數(shù)據(jù)庫(kù)聯(lián)結(jié)上的,如果真是那樣,ACCESS早就該淘汰了!
如果你不相信我可以做一個(gè)數(shù)據(jù)庫(kù)發(fā)給你,看你能不能打開(kāi)。我1997年開(kāi)始使用ACCESS做開(kāi)發(fā),對(duì)我所完成的各種數(shù)據(jù)庫(kù)我都要反復(fù)測(cè)試的,你所說(shuō)的情況如果可以,我早就積攢幾十個(gè)別人開(kāi)發(fā)我想破解掉的數(shù)據(jù)庫(kù)了。。。。
Q 愚弟還是不明白:
小弟在文中所指的用戶(hù)是指內(nèi)部操作人員,我也做過(guò)很多測(cè)試:
例:我建立一個(gè)安全機(jī)制的數(shù)據(jù)庫(kù),系統(tǒng)創(chuàng)建一個(gè)MDW文件,我設(shè)定一個(gè)新的只讀工作組及一個(gè)普通用戶(hù)(無(wú)管理員權(quán)),把系統(tǒng)的用戶(hù)組不設(shè)任何權(quán)限,然后退出ACCESS,選用新的MDW文件,用那個(gè)普通用戶(hù)登錄,建立一個(gè)新的文件,然后即可導(dǎo)入、鏈接先前那個(gè)已有安全機(jī)制的數(shù)據(jù)庫(kù).
A 你可能還是沒(méi)認(rèn)真讀我的帖子,其實(shí)ACCESS的幫助中有更詳盡的說(shuō)明,非常詳細(xì)。不過(guò)為了徹底讓你明白,我就列個(gè)傻瓜式的步驟吧,賢弟不要介意,我也是讀著傻瓜式的幫助才逐漸變聰明的。
1、先用ACCESS安裝目錄下的WRKGADM.EXE程序創(chuàng)建一個(gè)自己的MDW文件。然后關(guān)聯(lián)上。
2、登陸進(jìn)ACCESS后,缺省是ADMIN用戶(hù),隨便建立MDB,修改ADMIN用戶(hù)密碼,建立一個(gè)新的帳號(hào),比如PINEWOOD,作為我今后管理變成用,再建立一個(gè)NEWUSER,給我以后的用戶(hù)用。(可以不建立任何組)
3、重新登陸,以PINEWOOD登陸,然后修改密碼,即把空密碼修改掉。對(duì)NEWUSER帳號(hào)也重復(fù)一次。
4、以PINEWOOD登陸,建立你所需要開(kāi)發(fā)的數(shù)據(jù)庫(kù)MDB源文件,起名字比如MYCODE保存后即可對(duì)安全性設(shè)置。安全性設(shè)置你應(yīng)該知道在哪里吧,菜單里有。將所有ADMIN以及GUEST對(duì)MYCODE的任何權(quán)限都屏蔽掉,注意,任何權(quán)限,不管是對(duì)新表還是新模塊,還是對(duì)數(shù)據(jù)庫(kù)的打開(kāi)權(quán)限,全去掉。然后對(duì)所有組對(duì)本數(shù)據(jù)庫(kù)的全部權(quán)限也全屏蔽掉。不能遺漏。如果用戶(hù)組不屏蔽掉其權(quán)限,屬于這個(gè)組的ADMIN以及GUEST都可以打開(kāi)數(shù)據(jù)庫(kù)了。
5、然后對(duì)PINEWOOD對(duì)數(shù)據(jù)庫(kù)的權(quán)限進(jìn)行設(shè)置,當(dāng)然,應(yīng)該是所有權(quán)限都有。對(duì)NEWUSER權(quán)限進(jìn)行設(shè)置,當(dāng)然對(duì)所有表、查詢(xún)等除了修改設(shè)計(jì)權(quán)限,讀寫(xiě)的權(quán)限是應(yīng)該有的,打開(kāi)數(shù)據(jù)庫(kù)的權(quán)限也是應(yīng)該有的,運(yùn)行的權(quán)限也應(yīng)該有的。總之這個(gè)帳號(hào)是給用戶(hù)用的。
6、然后做開(kāi)發(fā),建立表窗體等。你已經(jīng)做過(guò)了,那就導(dǎo)入進(jìn)來(lái)。但這時(shí)候你的數(shù)據(jù)庫(kù)是安全的,別人是無(wú)法從MYCODE中得到任何東西的。除非知道密碼。
7、開(kāi)發(fā)完后應(yīng)該是分離數(shù)據(jù)庫(kù),不止到你是不是這樣做的,然后讓后臺(tái)的MDB數(shù)據(jù)庫(kù)一樣的安全。然后編譯前臺(tái)程序?yàn)镸DE文件。
8、做個(gè)EXE文件,我在別的帖子里說(shuō)了,簡(jiǎn)單的使用NEWUSER帳號(hào)打開(kāi)數(shù)據(jù)庫(kù)的EXE文件。是給你的用戶(hù)用的,這樣他們除了使用這個(gè)EXE使用數(shù)據(jù)庫(kù),沒(méi)別的辦法。
9、然后把MDB放到服務(wù)器端,MDE和MDW以及EXE發(fā)布給用戶(hù)使用。當(dāng)然MDE和MDB的關(guān)聯(lián)關(guān)系是事先建立并調(diào)試好的。編程中如何處理就不用說(shuō)了。
10、做到這里就足夠了,對(duì)于非常需要安全的開(kāi)發(fā)者來(lái)說(shuō)本來(lái)是還有一些工作要做的。可參見(jiàn)我的別的帖子!白⒁狻崩镎f(shuō)了一些。那些問(wèn)題都是用到了自然會(huì)用,未用到的還是沒(méi)用。遇到哪個(gè)問(wèn)題解決哪個(gè),賢弟以為然否?
Q 我的天?。‰y道我要同時(shí)復(fù)制三個(gè)文件,mdb & mdw & exe??? ...
先不說(shuō)vb 的exe可以很方便的反編譯,難道別人就不會(huì)把mdw文件先刪除,然后再打開(kāi)mdb文件嗎?
如果說(shuō)access的安全性?xún)H限于此,那真的叫“徹底安全”了。
另外問(wèn)一下,我需要更“安全”的方法有嗎?前兩次說(shuō)的方法只要稍微懂一點(diǎn)電腦知識(shí)的人就可以解決了。
A 對(duì)于文件共享方式,服務(wù)器端只需要安裝MDB數(shù)據(jù)庫(kù),客戶(hù)端需要安裝的是EXE、MDW和MDE文件。
注意:
1、是MDE文件,而不是MDB,數(shù)據(jù)庫(kù)應(yīng)該是放在后端的,而MDE文件是編譯過(guò)的,效率高,而且即使密碼被破解也不會(huì)泄露源代碼。
2、如果用戶(hù)刪除了MDW文件,那么就根本無(wú)法訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)了,如果不用我的MDW文件就能訪(fǎng)問(wèn)我的MDB文件,那我談什么安全。
3、EXE文件未必要用VB,VC、BC、DELPHI都可以,再說(shuō)VB5以上的版本我還沒(méi)聽(tīng)說(shuō)可以反編譯的,也沒(méi)找到相應(yīng)的工具。
4、目前破解ACCESS數(shù)據(jù)庫(kù)的用戶(hù)級(jí)安全密碼的工具也不少,但是對(duì)MDW文件的用戶(hù)是可以處理的,可以使之即使破解了MDW文件,也無(wú)法獲得使用MDE源程序文件MDB的權(quán)限,更何況MDE源程序文件MDB他是根本無(wú)法得到的,因?yàn)楦揪臀窗l(fā)布。無(wú)處得到,除非你計(jì)算機(jī)讓人隨便用。所以程序是肯定安全的,數(shù)據(jù)庫(kù)的數(shù)據(jù)的安全性雖是相對(duì)安全的,但是也是足夠的。
關(guān)鍵字:Access、安全、數(shù)據(jù)庫(kù)
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶(hù)
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶(hù)的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解