---- 大 家 都 知 道, 數 據 庫 的 安 全 性 是 很 重 要 的, 它 直 接 影 響 到 數 據 庫 的 廣 泛 應 用。 用 戶 可 以 采 用 任 意 一 種 方 法 來 保 護 數 據 庫 應 用 程 序, 也 可 以 將 幾 種 方 法 結 合 起 來 使 用。
利 用Access 數 據 庫 自 身 提 供 的 加 密 功 能 及 其 他 保 護 方 法 是 很 容 易 的, 我 就 不 多 說 了。 在Access 數 據 庫 中, 嵌 入 了 一 種 很 強 的 數 據 庫 操 作 語 言 — —Visual Basic 語 言, 所 以 可 以 采 用Visual Basic 編 寫 程 序, 來 實 現 一 些 復 雜 的 功 能。 下 面 將 介 紹 如 何 在Visual Basic 程 序 中 實 現 加 密 功 能, 以 確 保 數 據 的 安 全 性。
---- 對 於 一 些 公 司 來 說, 職 員 的 工 資 管 理 是 一 個 不 大 不 小 的 問 題。 有 時, 領 導 需 要 了 解 一 段 時 間 內 每 個 職 員 的 收 入 如 何, 以 便 掌 握 各 項 獎 金 的 發 放 情 況。 為 此, 我 設 計 了 一 個“ 工 資 管 理” 數 據 庫, 可 以 按 時 間 進 行 查 詢, 並 根 據 所 選 的 工 資 類 別 進 行 統 計。 為 了 防 止 其 他 人 查 看 此 數 據 庫, 我 采 用“ 獨 占” 方 式 給 數 據 庫 設 置 了 密 碼。 這 種 方 法 也 有 一 定 的 局 限 性, 如 果 用 戶 恰 巧 提 供 了 正 確 的 數 據 庫 密 碼, 該 方 法 就 不 能 控 制 用 戶 對 數 據 庫 進 行 操 作。
---- 為 了 進 一 步 防 止 職 員 查 看 工 資 的 統 計 結 果( 即 有 些 獎 金 並 不 是 公 開 的, 除 領 導 以 外 的 其 他 人 不 應 該 知 道 工 資 數 目), 我 又 創 建 了 一 個 密 碼 表, 設 置 好 密 碼, 記 住 並 將 其 隱 藏 起 來( 先 選 中“ 密 碼 表”, 再 單 擊“ 窗 口” 菜 單 中 的“ 隱 藏” 命 令, 即 可 把 此 表 隱 藏 起 來)。 然 後, 在“ 職 工 工 資 對 話 框” 窗 體 中, 添 加“ 密 碼” 文 本 框, 並 在“ 預 覽” 及“ 打 印” 的 事 件 過 程 中 加 入 下 列 語 句:
DoCmd.ApplyFilter , "密碼 = Forms!
職工工資對話框!PassText"
If Not IsNull([密碼]) Then
/*其他代碼*/
Else
MsgBox "請輸入正確的密碼!"
PassText.SetFocus
End If
/*其他代碼*/
---- 這 樣, 就 實 現 了 雙 重 加 密 功 能。 即 使 用 戶 能 進 入 數 據 庫, 如 果 第 二 次 沒 有 提 供 正 確 的 密 碼, 他 也 不 能 預 覽 和 打 印 一 定 時 間 范 圍 的 統 計 結 果。 這 就 進 一 步 限 制 了 用 戶 的 非 授 權 訪 問。
---- 為 了 提 高 數 據 庫 的 安 全 性, 每 隔 一 段 時 間 都 應 更 改 密 碼。 為 此, 在“ 職 工 工 資 對 話 框” 窗 體 中, 我 又 添 加 了 一 個“ 更 改 密 碼” 子 窗 體, 在 此 窗 體 中 加 入 下 列 代 碼, 即 可 隨 時 更 改 密 碼:
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 ("請輸入正確的確認密碼")
Else:
密碼 = Text3.Value
DoCmd.Close
End If
Exit_確定_Click:
Exit Sub
Err_確定_Click:
MsgBox Err.Description
Resume Exit_確定_Click
End Sub
---- 更 改 密 碼 後, 應 記 住 此 密 碼, 以 備 以 後 使 用。
---- 設 計 好 程 序, 並 將 有 關 代 碼 隱 藏 起 來( 與 隱 藏“ 表” 的 方 法 相 同), 以 防 其 他 人 修 改 或 偷 看。 這 裡 介 紹 的 方 法 只 是 在 程 序 中 實 現 加 密 功 能 的 一 個 小 技 巧, 在 其 他 數 據 庫 管 理 中, 也 可 采 用 此 方 法 進 行 加 密。 也 許 存 在 更 為 簡 潔 的 方 法, 有 待 大 家 在 編 程 過 程 中 發 掘 出 來 並 互 相 交 流。