Q MDB我用[啟動]的所有選項都False,用封面表單啟動,同個工作組的用戶沒授權是不能開打表修改,但他可以另建一個空數據庫,進行導入或鏈接進行修改,如何防範?請賜教!
A 首先應該用MS Access Workgroup Administrator程式建立自己的MDW檔案,例如newSystem.mdw,然後建立一個新的帳號例如newAdmin,缺省的有AMDIN和,例如GUEST帳號,然後設定各個帳號的密碼。然後以newAdmin帳號登陸,建立資料庫,或匯入現有的資料庫中的表或窗體等進行開發。對資料庫的安全性進行設定。除了newadmin帳號,將所有的群組和使用者對該資料庫的開啟權限都屏蔽掉,其它權限也宜屏蔽掉。這樣的話安全了。這樣的話打開該資料庫只能關聯上新建的MDW文件,使用newAdmin帳號才能開啟。但實際應用時當然還應該建立一個運行軟體的帳號,例如newUser,(最好不要用缺省的「用戶」帳號,這樣關聯到SYSTEM。MDW上就可以進入,即使你設定密碼也不安全,因為COPY一個新的SYSTEM。屏蔽一切可以修改的權限。這樣的話開發和運行就是兩個帳號,但是新的問題就是如果就這樣交給用戶使用,那麼用戶就必須知道newUser帳號的密碼,那樣的話數據就又不安全了,所以還應該用VB或者DELPHI做個套子,最簡單的寫上一句,運行該資料庫就行了,例如:strRunShell = "c:Program FilesMicrosoft OfficeOfficeMSACCESS.EXE /nostartup"
strRunShell = strRunShell & "/wrkgrp c:newSystem.mdw c:pinewood.mdede /user newUser /PWD yourpassword"
RetVal = Shell(strRunShell, vbMaximizedFocus)
當然這只是個意思,在這套子裡寫寫別的也可以,比如檢查ACCESS是否安裝了,路徑是不是對,是不是註冊了等等。 (附:用另外一個已經編譯成MDE檔案的資料庫也可以達到如上效果)
Q 使用者安全群組我也用過,但是我指的安全性主要針對內部人員,外面的高手如林,根本不要談安全性了。
ACCESS有個致命的毛病(或許我還不會用),它的安全性性能只能用在當前已設安全機制的數據庫,對用戶新建的數據庫根本無用,用戶只需用他的帳戶登入ACCESS ,新建一個*.MDB,再用連結功能即可把後端資料庫的表都連結起來(或前端資料庫也可,因為前端資料庫的表是連結再後端資料庫的表上,他無非是再連結而已),他只要看懂表的內容,就可以任意修改了。
其實微軟稍改ACCESS讓它的安全機制適用所有的資料庫而不是目前資料庫,我們就不用傷腦筋去防範一些初哥們,作為我們使用安全機制無非也就防範這些內部使用者的非法修改、破壞而已。
所以我們需要ACCESS系統等級安全機製或office developer edition也有一定的幫助
A 錯錯,「使用者只需用他的帳戶登入ACCESS,新建一個*.MDB,再用連結功能即可把後端資料庫的表都連結起來(或前端資料庫也可,因為前端資料庫的表是連結再後端資料庫的表上,他無非是再連結而已),他只要看懂表的內容,就可以任意修改了。如果ACCESS的安全性真的象賢弟所說的,那我所貼的那些可能都是空談了。你可能還是沒有照我說貼文的實踐一番。事實上是不會那樣的,因為我是新建立的系統檔案(即MDW檔案),關聯到新的系統檔案建立資料庫,而此資料庫的開啟權限只能由我指定的固定的使用者例如NEWUSER才有,所以別人,不管關聯到什麼系統檔案上都是無法用新建的資料庫聯結上的,如果真是那樣,ACCESS早就該淘汰了!
如果你不相信我可以做一個資料庫發給你,看你能不能打開。我1997年開始使用ACCESS做開發,對我所完成的各種資料庫我都要反覆測試的,你所說的情況如果可以,我早就積攢幾十個別人開發我想破解掉的資料庫了。 。 。 。
Q 愚弟還是不懂:
小弟在文中所指的使用者是指內部操作人員,我也做過很多測試:
例:我建立一個安全機制的資料庫,系統建立一個MDW文件,我設定一個新的唯讀工作組及一個普通用戶(無管理權),把系統的用戶組不設任何權限,然後退出ACCESS,選用新的MDW文件,用那個普通用戶登錄,建立一個新的文件,然後即可導入、連結先前那個已有安全機制的資料庫.
A 你可能還是沒認真讀我的帖子,其實ACCESS的幫助中有更詳盡的說明,非常詳細。不過為了徹底讓你明白,我就列個傻瓜式的步驟吧,賢弟不要介意,我也是讀著傻瓜式的幫助才逐漸變聰明的。
1、先用ACCESS安裝目錄下的WRKGADM.EXE程式建立一個自己的MDW檔。然後關聯上。
2、登陸進ACCESS後,缺省是ADMIN用戶,隨便建立MDB,修改ADMIN用戶密碼,建立一個新的帳號,比如PINEWOOD,作為我今後管理變成用,再建立一個NEWUSER,給我以後的用戶用。 (可以不建立任何組別)
3、重新登陸,以PINEWOOD登陸,然後修改密碼,也就是把空密碼修改掉。對NEWUSER帳號也重複一次。
4、以PINEWOOD登陸,建立你所需要開發的資料庫MDB來源文件,取名字例如MYCODE保存後即可對安全性設定。安全性設定你應該知道在哪裡吧,選單裡有。將所有ADMIN以及GUEST對MYCODE的任何權限都屏蔽掉,注意,任何權限,不管是對新表還是新模組,還是對資料庫的開啟權限,全去掉。然後對所有群組對本資料庫的全部權限也全屏蔽掉。不能遺漏。如果使用者群組不屏蔽掉其權限,屬於這個群組的ADMIN以及GUEST都可以開啟資料庫了。
5、然後對PINEWOOD對資料庫的權限進行設置,當然,應該是所有權限都有。對NEWUSER權限進行設置,當然對所有表、查詢等除了修改設計權限,讀寫的權限是應該有的,打開資料庫的權限也是應該有的,運行的權限也應該有的。總之這個帳號是給用戶用的。
6、然後做開發,建立表窗體等。你已經做過了,那就導入進來。但這時候你的資料庫是安全的,別人是無法從MYCODE中得到任何東西的。除非知道密碼。
7、開發完後應該是分離資料庫,不只到你是不是這樣做的,然後讓後台的MDB資料庫一樣的安全。然後編譯前台程式為MDE檔。
8、做個EXE文件,我在別的貼文裡說了,簡單的使用NEWUSER帳號開啟資料庫的EXE檔案。是給你的用戶用的,這樣他們除了使用這個EXE使用資料庫,沒別的辦法。
9、然後把MDB放到伺服器端,MDE和MDW以及EXE發佈給使用者使用。當然MDE和MDB的關聯關係是事先建立並調試好的。程式設計中如何處理就不用說了。
10、做到這裡就足夠了,對於非常需要安全的開發者來說本來是還有一些工作要做的。可參考我的別的帖子。 「注意」裡說了一些。那些問題都是用到了自然會用,未用到的還是沒用。遇到哪個問題解決哪個,賢弟以為然否?
Q 我的天? ! !難道我要同時複製三個文件,mdb & mdw & exe??? ...
先不說vb 的exe可以很方便的反編譯,難道別人就不會把mdw文件先刪除,然後再打開mdb文件嗎?
如果說access的安全性僅限於此,那真的叫「徹底安全」了。
另外問一下,我需要更「安全」的方法有嗎?前兩次說的方法只要稍微懂一點電腦知識的人就可以解決了。
A 對於檔案共用方式,伺服器端只需要安裝MDB資料庫,客戶端需要安裝的是EXE、MDW和MDE檔案。
注意:
1、是MDE文件,而不是MDB,資料庫應該是放在後端的,而MDE檔案是編譯過的,效率高,即使密碼被破解也不會洩漏原始碼。
2、如果使用者刪除了MDW文件,那麼就根本無法存取資料庫了,如果不用我的MDW文件就能存取我的MDB文件,那我談什麼安全。
3、EXE檔案未必要用VB,VC、BC、DELPHI都可以,再說VB5以上的版本我還沒聽說可以反編譯的,也沒找到對應的工具。
4、目前破解ACCESS資料庫的用戶級安全密碼的工具也不少,但是對MDW文件的用戶是可以處理的,可以使之即使破解了MDW文件,也無法獲得使用MDE源程序文件MDB的權限,更何況MDE原始程式檔案MDB他是根本無法取得的,因為根本就未發布。無處得到,除非你電腦讓人隨便用。所以程式是肯定安全的,資料庫的資料的安全性雖是相對安全的,但也是足夠的。
更多相關文章請追蹤PHP中文網(www.php.cn)!