Access数据库用另一种方式管理密码

来源:pop222.cn 时间:2008-10-13 12:25:00 

大家都知道,数据库的安全性是很重要的,它直接影响到数据库的广泛应用。用户可以采用任意一种方法来保护数据库应用程序,也可以将几种方法结合起来使用。利用Access数据库自身提供的加密功能及其他保护方法是很容易的,我就不多说了。在Access数据库中,嵌入了一种很强的数据库操作语言——VisualBasic语言,所以可以采用VisualBasic编写程序,来实现一些复杂的功能。下面将介绍如何在VisualBasic程序中实现加密功能,以确保数据的安全性。

----对于一些公司来说,职员的工资管理是一个不大不小的问题。有时,领导需要了解一段时间内每个职员的收入如何,以便掌握各项奖金的发放情况。为此,我设计了一个“工资管理”数据库,可以按时间进行查询,并根据所选的工资类别进行统计。为了防止其他人查看此数据库,我采用“独占”方式给数据库设置了密码。这种方法也有一定的局限性,如果用户恰巧提供了正确的数据库密码,该方法就不能控制用户对数据库进行操作。

----为了进一步防止职员查看工资的统计结果(即有些奖金并不是公开的,除领导以外的其他人不应该知道工资数目),我又创建了一个密码表,设置好密码,记住并将其隐藏起来(先选中“密码表”,再单击“窗口”菜单中的“隐藏”命令,即可把此表隐藏起来)。然后,在“职工工资对话框”窗体中,添加“密码”文本框,并在“预览”及“打印”的事件过程中加入下列语句:

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 

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

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

标签:access,密码,安全,数据库
0
投稿

猜你喜欢

  • Python 中面向接口编程详情

    2022-05-06 19:55:41
  • php分页查询的简单实现代码

    2024-03-14 09:43:40
  • 浅谈function(函数)中的动态参数

    2023-08-11 10:23:59
  • MySQL里面的子查询实例

    2024-01-14 20:43:17
  • pytorch: Parameter 的数据结构实例

    2022-10-19 22:28:22
  • pandas中pd.groupby()的用法详解

    2023-06-11 10:25:55
  • bpython 功能强大的Python shell

    2022-05-08 22:12:06
  • pytorch显存一直变大的解决方案

    2021-03-03 00:03:09
  • Jquery AJAX POST与GET之间的区别

    2024-04-29 13:58:32
  • python比较两个列表大小的方法

    2023-01-14 22:24:40
  • ASP+JAVAScript:复杂表单的动态生成与验证

    2007-10-06 21:51:00
  • Vue3 计算属性的用法详解

    2024-04-28 09:20:33
  • Runnable.com 在线测试代码片分享网站

    2023-02-04 09:25:54
  • SQL server 定时自动备份数据库的图文方法

    2024-01-14 17:55:50
  • Tensorflow 多线程设置方式

    2021-09-29 21:53:50
  • 15个用户体验设计剖析

    2010-05-11 16:43:00
  • 框架和框架之间的关系

    2008-01-17 18:54:00
  • Python MySQLdb 使用utf-8 编码插入中文数据问题

    2023-07-31 11:04:13
  • IE6中隐形的PNG8图片

    2009-11-27 18:38:00
  • Python中的复杂数据类型(list、tuple)

    2023-06-07 10:10:19
  • asp之家 网络编程 m.aspxhome.com