?? 131.txt
字號:
在Access數(shù)據(jù)庫中實現(xiàn)密碼管理的另一種方式
作者:王小娟
大 家 都 知 道, 數(shù) 據(jù) 庫 的 安 全 性 是 很 重 要 的, 它 直 接 影 響 到 數(shù) 據(jù) 庫 的 廣 泛 應(yīng) 用。 用 戶 可 以 采 用 任 意 一 種 方 法 來 保 護(hù) 數(shù) 據(jù) 庫 應(yīng) 用 程 序, 也 可 以 將 幾 種 方 法 結(jié) 合 起 來 使 用。 利 用Access 數(shù) 據(jù) 庫 自 身 提 供 的 加 密 功 能 及 其 他 保 護(hù) 方 法 是 很 容 易 的, 我 就 不 多 說 了。 在Access 數(shù) 據(jù) 庫 中, 嵌 入 了 一 種 很 強(qiáng) 的 數(shù) 據(jù) 庫 操 作 語 言 — —Visual Basic 語 言, 所 以 可 以 采 用Visual Basic 編 寫 程 序, 來 實 現(xiàn) 一 些 復(fù) 雜 的 功 能。 下 面 將 介 紹 如 何 在Visual Basic 程 序 中 實 現(xiàn) 加 密 功 能, 以 確 保 數(shù) 據(jù) 的 安 全 性。
---- 對 于 一 些 公 司 來 說, 職 員 的 工 資 管 理 是 一 個 不 大 不 小 的 問 題。 有 時, 領(lǐng) 導(dǎo) 需 要 了 解 一 段 時 間 內(nèi) 每 個 職 員 的 收 入 如 何, 以 便 掌 握 各 項 獎 金 的 發(fā) 放 情 況。 為 此, 我 設(shè) 計 了 一 個“ 工 資 管 理” 數(shù) 據(jù) 庫, 可 以 按 時 間 進(jìn) 行 查 詢, 并 根 據(jù) 所 選 的 工 資 類 別 進(jìn) 行 統(tǒng) 計。 為 了 防 止 其 他 人 查 看 此 數(shù) 據(jù) 庫, 我 采 用“ 獨 占” 方 式 給 數(shù) 據(jù) 庫 設(shè) 置 了 密 碼。 這 種 方 法 也 有 一 定 的 局 限 性, 如 果 用 戶 恰 巧 提 供 了 正 確 的 數(shù) 據(jù) 庫 密 碼, 該 方 法 就 不 能 控 制 用 戶 對 數(shù) 據(jù) 庫 進(jìn) 行 操 作。
---- 為 了 進(jìn) 一 步 防 止 職 員 查 看 工 資 的 統(tǒng) 計 結(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
/*其他代碼*/
---- 這 樣, 就 實 現(xiàn) 了 雙 重 加 密 功 能。 即 使 用 戶 能 進(jìn) 入 數(shù) 據(jù) 庫, 如 果 第 二 次 沒 有 提 供 正 確 的 密 碼, 他 也 不 能 預(yù) 覽 和 打 印 一 定 時 間 范 圍 的 統(tǒng) 計 結(jié) 果。 這 就 進(jìn) 一 步 限 制 了 用 戶 的 非 授 權(quán) 訪 問。
---- 為 了 提 高 數(shù) 據(jù) 庫 的 安 全 性, 每 隔 一 段 時 間 都 應(yīng) 更 改 密 碼。 為 此, 在“ 職 工 工 資 對 話 框” 窗 體 中, 我 又 添 加 了 一 個“ 更 改 密 碼” 子 窗 體, 在 此 窗 體 中 加 入 下 列 代 碼, 即 可 隨 時 更 改 密 碼:
Private Sub確定_Click()
On Error GoTo Err_確定_Click
DoCmd.ApplyFilter , "密碼
= Forms!更改密碼!Text1"
If IsNull([密碼]) Then
MsgBox ("密碼不正確,
請再輸入一次")
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -