大家都知道,數(shù)據(jù)庫的安全性是很重要的,它直接影響到數(shù)據(jù)庫的廣泛應(yīng)用。用戶可以采用任意一種方法來保護(hù)數(shù)據(jù)庫應(yīng)用程序,也可以將幾種方法結(jié)合起來使用。利用access數(shù)據(jù)庫自身提供的加密功能及其他保護(hù)方法是很容易的,我就不多說了。在access數(shù)據(jù)庫中,嵌入了一種很強(qiáng)的數(shù)據(jù)庫操作語言——visualbasic語言,所以可以采用visualbasic編寫程序,來實(shí)現(xiàn)一些復(fù)雜的功能。下面將介紹如何在visualbasic程序中實(shí)現(xiàn)加密功能,以確保數(shù)據(jù)的安全性。
----對于一些公司來說,職員的工資管理是一個不大不小的問題。有時(shí),領(lǐng)導(dǎo)需要了解一段時(shí)間內(nèi)每個職員的收入如何,以便掌握各項(xiàng)獎金的發(fā)放情況。為此,我設(shè)計(jì)了一個“工資管理”數(shù)據(jù)庫,可以按時(shí)間進(jìn)行查詢,并根據(jù)所選的工資類別進(jìn)行統(tǒng)計(jì)。為了防止其他人查看此數(shù)據(jù)庫,我采用“獨(dú)占”方式給數(shù)據(jù)庫設(shè)置了密碼。這種方法也有一定的局限性,如果用戶恰巧提供了正確的數(shù)據(jù)庫密碼,該方法就不能控制用戶對數(shù)據(jù)庫進(jìn)行操作。
----為了進(jìn)一步防止職員查看工資的統(tǒng)計(jì)結(jié)果(即有些獎金并不是公開的,除領(lǐng)導(dǎo)以外的其他人不應(yīng)該知道工資數(shù)目),我又創(chuàng)建了一個密碼表,設(shè)置好密碼,記住并將其隱藏起來(先選中“密碼表”,再單擊“窗口”菜單中的“隱藏”命令,即可把此表隱藏起來)。然后,在“職工工資對話框”窗體中,添加“密碼”文本框,并在“預(yù)覽”及“打印”的事件過程中加入下列語句:
docmd.applyfilter , "密碼 = forms!
職工工資對話框!passtext"
if not isnull([密碼]) then
/*其他代碼*/
else
msgbox "請輸入正確的密碼!"
passtext.setfocus
end if
/*其他代碼*/
這樣,就實(shí)現(xiàn)了雙重加密功能。即使用戶能進(jìn)入數(shù)據(jù)庫,如果第二次沒有提供正確的密碼,他也不能預(yù)覽和打印一定時(shí)間范圍的統(tǒng)計(jì)結(jié)果。這就進(jìn)一步限制了用戶的非授權(quán)訪問。
----為了提高數(shù)據(jù)庫的安全性,每隔一段時(shí)間都應(yīng)更改密碼。為此,在“職工工資對話框”窗體中,我又添加了一個“更改密碼”子窗體,在此窗體中加入下列代碼,即可隨時(shí)更改密
private sub確定_click()
on error goto err_確定_click
docmd.applyfilter , "密碼
= forms!更改密碼!text1"
if isnull([密碼]) then
msgbox ("密碼不正確,
請?jiān)佥斎胍淮?quot;)
text1.setfocus
goto exit_確定_click:
end if
if text3.value < > text2.value then
text3.setfocus
msgbox ("請輸入正確的確認(rèn)密碼")
else:
密碼 = text3.value
docmd.close
end if
exit_確定_click:
exit sub
err_確定_click:
msgbox err.description
resume exit_確定_click
end sub
更改密碼后,應(yīng)記住此密碼,以備以后使用。
----設(shè)計(jì)好程序,并將有關(guān)代碼隱藏起來(與隱藏“表”的方法相同),以防其他人修改或偷看。這里介紹的方法只是在程序中實(shí)現(xiàn)加密功能的一個小技巧,在其他數(shù)據(jù)庫管理中,也可采用此方法進(jìn)行加密。也許存在更為簡潔的方法,有待大家在編程過程中發(fā)掘出來并互相交流。
新聞熱點(diǎn)
疑難解答
圖片精選