数据访问控制--多客户环境下VB数据库编程之(2)

2016-02-19 12:55 5 1 收藏

下面图老师小编要向大家介绍下数据访问控制--多客户环境下VB数据库编程之(2),看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

【 tulaoshi.com - 编程语言 】

在单用户环境中,只有一个用户在访问数据,因此应用程序不会发生资源请求冲突。而在多用户环境中,当用户访问数据时,可能会发生冲突。为了管理这些冲突,MicrosoftJet提供了数据访问控制和应用程序的锁定服务,以保证在给定的时间内只有一个用户可以访问数据。数据访问控制用来对数据库的部分或全部进行访问限制,通常可分为两类,一类是用户限制,另一类是功能限制。用户限制用来阻止某些人(或只允许某些人)查看或修改“敏感”数据。例如,在工资系统中,大多数人可以查看职工的工资,但只有少数人才有权修改实际的工资信息。功能限制只对程序的某个部分起作用,而不管用户是谁。例如,在订单登记系统中,如果把价格表设为只读模式,则可防止用户随意修改某些项目的价格。在应用程序中,可以通过程序控制或MicrosoftJet数据库引擎控制来处理限制。其中程序控制可以施加于程序自身,而引擎级控制则限制了任何试图访问数据库信息的程序。
  
  1.互斥地使用数据库。以互斥方式打开数据库是对数据访问施加的最大限制,它实际上是以“独占”方式使用数据库。这种限制可以阻止任何用户或程序访问正在使用的数据库中的信息。由于这种方式的限制太大,因而只用于那些影响整个数据库的操作,包括:
  
  ·压缩数据库。
  ·更新整个表(例如用UPDATE查询)。
  ·通过添加表、字段或者索引来修改数据库的结构。
  ·处理特殊的用户需求(例如传送审计信息)。
  
  在程序代码中,为了以独占方式打开一个数据库,必须把OpenDatabase方法的第二个参数设置为True,例如:
  
  DimoldDbAsDatabase
  DimoldwsAsworkSpace
  SetoldDb=oldWs.OpenDatabase("Members.mdb",True,False)
  
  用上面的代码打开数据库时,如果该数据库未被其它用户使用,则打开数据库,这样直到关闭之前,该数据库不会被其它用户或程序访问;如果数据库正在被其它用户使用,则返回一个错误。
  
  2.拒绝其它用户或程序访问指定的表。以独占方式打开数据库后,可以拒绝其它用户或程序访问整个数据库(包括数据库中的每个表)。而对数据访问的一种较轻的限制则是拒绝其它用户或程序访问由本人程序正在使用的表(即记录集),它实际上是对记录集进行锁定。锁定记录集的操作通过OpenRecordset方法中的Options参数来实现。我们知道,OpenRecordset方法的格式如下:
  
  对象.OpenRecordset(type,OPtlons,lockedits)
  
  其中的options参数用来设置对记录集的锁定,该参数可以取多种值,以下两种值用来禁止其它用户对记录集进行读写操作:
  
  1..禁止读(dbDenyRead)
  
  OpenRecordset方法中的dbDenyRead常量用来禁止其它用户查看表中的数据,直到关闭该表为止。当需要更新整个表中的信息时,可以使用这个常量。例如:
  
  DimrstasRecordset
  Setrst=dbs.OpenRecordset(strTable,dbOpenTable,dbDenyRead)
  
  2.禁止写(dbDenywrite)
  OpenRecordset方法中的dbDenyWrite常量用来禁止其它用户更新表中的数据,直到关闭该表为止。在这种情况下,其它用户可以查看表中的信息,也可以添加新记录,但不能对其进行修改。当需要向表中插入新记录而又不想修改现有的记录时,可以使用这个常量,它对表和动态集都有效。例如:
  DimrstasRecordset
  Setrst=dbs.OPenRecordset(strTable,dbOpenTable,dbDenyWrite)
  
  用dbDenyRead和dbDenyWrite可以分别禁止对记录集进行读和写,如果既想禁止读,又想禁止写,则可同时使用这两个常量(用“十”号连接)。例如:
  DimrstasRecordset
  Setrst=dbs.OpenRecordset(strTable,dbOpenTable,dbDenyRead dbDenyWrite)->

来源:http://www.tulaoshi.com/n/20160219/1602466.html

延伸阅读
VB全称VisualBasic,是微软公司推出的基于Basic语言的可视化编程环境,以其简单易学功能强大而倍受广大电脑爱好者的青睐。 VB的数据库编程方面按其难易程度可分为三类(由易到难); ●使用数据库控制项和绑定控制项 ●使用数据库对象变量进行编程 ●直接调用ODBC2.0API 在使用VB进行数据库编程时,通常,会首先选择三种基本方法之...
用Visual Basic访问数据库有许多可供选择的方案,但是选择那种方案更能使开发队伍和应用软件在今天处于有利位置并且适应将来的发展方向呢?这些解决方案各有什么特点?本文将说明这些问题,帮助使用VB5的用户和准备使用VB5的用户选择和决定哪种数据库访问方案对现在很有意义而且适应将来的应用程序。 当今,RDO2.0是Visual Basic访问关...
在多用户应用程序设计中,最主要的问题是控制数据的锁定,前面几节我们已进行了讨论。但是,应当指出,锁定并不是多用户应用程序设计中唯一的问题,在为多用户访问设计一个应用程序时,还应当注意到其它一些方面,下面将讨论这些问题。 问题一数据访问对象集合的刷新 在多用户环境中,当用户添加新表、查询数据库或删除现有对...
在VB中,用microsoftjet数据库引擎和数据访问对象DAO(dataaccessobject)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在VB中用DAO通过miscrosoftjet数据库引擎访问远程数据库的方法。 用DAO访问远程数据库大体上可以通过三步来实现,即数据连接、数据处理和断开连接。下面主...
问题三用户标识 在多用户应用程序中,可以以编程方式标识当前登录到系统上的用户,这对于管理功能是有用的。比如用编辑好的记录来存储用户名字,从而建立一个核查线索。实现一个安全的数据库,可以迫使用户必须用预先定义的用户名和密码来登录应用程序,这样,应用程序就可以通过Workspace对象的UserNane属性来使用用户名。下面这个过...

经验教程

216

收藏

43
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部