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
更改密码后,应记住此密码,以备以后使用。
----设计好程序,并将有关代码隐藏起来(与隐藏“表”的方法相同),以防其他人修改或偷看。这里介绍的方法只是在程序中实现加密功能的一个小技巧,在其他数据库管理中,也可采用此方法进行加密。也许存在更为简洁的方法,有待大家在编程过程中发掘出来并互相交流。
猜你喜欢
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 字符串字符串常用操作拼接字符串拼接字符串需要使用‘+’运算符可完成对多个字符串的拼接。如str =
- 背景 background css 说明 background-image:url(&q
- 前言如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等。那么, Pyt
- 本文实例讲述了Python爬虫之pandas基本安装与使用方法。分享给大家供大家参考,具体如下:一、简介:Python Data Analy
- 熟悉js的朋友很多都遇到过js的数组与字符串相互转换的情况,本文就此作一简单介绍,示例如下:一、数组转字符串需要将数组元素用某个字符连接成字
- 图像(包括动图)是传递信息的一种高效方式,往往能增强表象、记忆与思维等方面的反应强度。所谓一图胜千言,说的就是这个道理。今天为大家整理了十张
- 部署环境: jdk1.7mysql5.6tomcat7centos6.51资料准备 1)linux服务器,推荐使用阿里云,这里预算有限,所以
- 把文件夹dir1中后缀为'.jpg'的文件拷贝到文件夹dir2中:import globimport shutilimpor
- 1)视频读取import cv2cap = cv2.VideoCapture('E:\\Video\\20000105_224116
- 如下所示:mystring.strip().replace(' ', '').replace('\n
- 前言React核心的单向数据流、一切皆数据的state、不会改变的props,以及状态提升等等经常使用便不多总结,需要的看官方文档。JSXJ
- 在登陆界面中,通常,最重要的部分为登陆的Form表。一个非常棒的提升体验的做法是,在载入页面时自动聚焦到第一个提供用户输入的表单框,让用户不
- 背景实现需求:批量下载联想某型号的全部驱动程序。一般在做网络爬虫的时候,都是保存网页信息为主,或者下载单个文件。当涉及到多文件批量下载的时候
- 用JDBC实现对MySQL的“增删改查”:import java.sql.Connection;im
- 本文实例分析了ThinkPHP中的__initialize()和类的构造函数__construct()。分享给大家供大家参考。具体分析如下:
- 把dataframe转换为list输入多维dataframe: df = pd.DataFrame({'a':[1,3,5,
- Python爬虫为什么受欢迎如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 P
- spring JdbcTemplate数据库事务管理现在有个账户表,里面存着用户金额。如果要真正地做好转账的操作,就要用到事务,否则当出现异
- 今天把Ext.js源码又读了一遍,不过这次比较认真。看完代码,有了不少收获也遇到不少问题。主要总结如下:1、document.execCom