Access中密码管理的另一种方式

网络整理 - 07-27

  大 家 都 知 道, 数 据 库 的 安 全 性 是 很 重 要 的, 它 直 接 影 响 到 数 据 库 的 广 泛 应 用。 用 户 可 以 采 用 任 意 一 种 方 法 来 保 护 数 据 库 应 用 程 序, 也 可 以 将 几 种 方 法 结 合 起 来 使 用。利 用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

  ---- 更 改 密 码 后, 应 记 住 此 密 码, 以 备 以 后 使 用。

  ---- 设 计 好 程 序, 并 将 有 关 代 码 隐 藏 起 来( 与 隐 藏“ 表” 的 方 法 相 同), 以 防 其 他 人 修 改 或 偷 看。 这 里 介 绍 的 方 法 只 是 在 程 序 中 实 现 加 密 功 能 的 一 个 小 技 巧, 在 其 他 数 据 库 管 理 中, 也 可 采 用 此 方 法 进 行 加 密。 也 许 存 在 更 为 简 洁 的 方 法, 有 待 大 家 在 编 程 过 程 中 发 掘 出 来 并 互 相 交 流。