在Access中實(shí)現(xiàn)密碼管理的另一種方式

字號(hào):

大家都知道,數(shù)據(jù)庫(kù)的安全性是很重要的,它直接影響到數(shù)據(jù)庫(kù)的廣泛應(yīng)用。用戶可以采用任意一種方法來(lái)保護(hù)數(shù)據(jù)庫(kù)應(yīng)用程序,也可以將幾種方法結(jié)合起來(lái)使用。利用Access數(shù)據(jù)庫(kù)自身提供的加密功能及其他保護(hù)方法是很容易的,我就不多說(shuō)了。在Access數(shù)據(jù)庫(kù)中,嵌入了一種很強(qiáng)的數(shù)據(jù)庫(kù)操作語(yǔ)言——VisualBasic語(yǔ)言,所以可以采用VisualBasic編寫(xiě)程序,來(lái)實(shí)現(xiàn)一些復(fù)雜的功能。下面將介紹如何在VisualBasic程序中實(shí)現(xiàn)加密功能,以確保數(shù)據(jù)的安全性。
    對(duì)于一些公司來(lái)說(shuō),職員的工資管理是一個(gè)不大不小的問(wèn)題。有時(shí),領(lǐng)導(dǎo)需要了解一段時(shí)間內(nèi)每個(gè)職員的收入如何,以便掌握各項(xiàng)獎(jiǎng)金的發(fā)放情況。為此,我設(shè)計(jì)了一個(gè)“工資管理”數(shù)據(jù)庫(kù),可以按時(shí)間進(jìn)行查詢,并根據(jù)所選的工資類(lèi)別進(jìn)行統(tǒng)計(jì)。為了防止其他人查看此數(shù)據(jù)庫(kù),我采用“獨(dú)占”方式給數(shù)據(jù)庫(kù)設(shè)置了密碼。這種方法也有一定的局限性,如果用戶恰巧提供了正確的數(shù)據(jù)庫(kù)密碼,該方法就不能控制用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
    為了進(jìn)一步防止職員查看工資的統(tǒng)計(jì)結(jié)果(即有些獎(jiǎng)金并不是公開(kāi)的,除領(lǐng)導(dǎo)以外的其他人不應(yīng)該知道工資數(shù)目),我又創(chuàng)建了一個(gè)密碼表,設(shè)置好密碼,記住并將其隱藏起來(lái)(先選中“密碼表”,再單擊“窗口”菜單中的“隱藏”命令,即可把此表隱藏起來(lái))。然后,在“職工工資對(duì)話框”窗體中,添加“密碼”文本框,并在“預(yù)覽”及“打印”的事件過(guò)程中加入下列語(yǔ)句:
    DoCmd.ApplyFilter , "密碼 = Forms!
    職工工資對(duì)話框!PassText"
    If Not IsNull([密碼]) Then
    /*其他代碼*/
    Else
    MsgBox "請(qǐng)輸入正確的密碼!"
    PassText.SetFocus
    End If
    /*其他代碼*/
     這樣,就實(shí)現(xiàn)了雙重加密功能。即使用戶能進(jìn)入數(shù)據(jù)庫(kù),如果第二次沒(méi)有提供正確的密碼,他也不能預(yù)覽和打印一定時(shí)間范圍的統(tǒng)計(jì)結(jié)果。這就進(jìn)一步限制了用戶的非授權(quán)訪問(wèn) 。