设备访问

2024-09-06

设备访问(精选五篇)

设备访问 篇1

随着数字化、信息化、网络化的发展与应用,计算机中文件的安全性问题已经成了保证管理系统正常运行、发挥效能的不可忽视的重要因素。现有的众多文件访问控制机制从根本上只对重要数据在机器内部的流动行为和存储方式进行控制,并没有考虑到数据通过移动设备的外向流动。而现实需求告诉我们,重要数据的外向流动恰恰是机密泄露的主要途径之一。移动设备作为数据外向流动的载体,如何对它的使用进行管理是现在信息安全领域一个不容忽视的问题。

目前针对移动设备的使用控制主要有两种方式,一是通过政策条文的形式来明确限制移动设备的使用,另一种是通过专门的软件实现对移动设备的访问控制。目前市面上已经存在针对移动设备的访问控制软件,它们提供了对U盘/移动硬盘的访问控制功能,但这种控制更多的仅限于只读,停用,启用的功能。这两种方式严格限制了移动设备的使用,不利于资源的共享和信息的交流。基于文件过滤驱动的移动设备访问控制是在文件过滤驱动层捕获所有对移动设备的读写操作,对流经移动设备的信息流进行加解密控制,这样在不限制移动设备使用的情况下有效地防止了因数据外向流动而造成的信息泄露情况的发生。

1. 系统设计

1.1 系统总体设计模型

文件系统过滤驱动是针对文件系统而言的,它既可以被插在文件系统驱动之上,也可以被插在文件系统驱动和存储设备驱动之间。在系统实现中我采用的是将文件过滤驱动插在文件系统驱动之上的实现方式。通过文件系统过滤驱动程序构造附加设备对象挂接在文件系统的存储设备之上,这样就可以在文件系统过滤驱动中截获发送到目标设备的操作请求。可以根据我们的设计要求,实现对移动设备访问的审计监控、文件加密、限制访问等工作,从而达到对移动设备访问控制的目的。

整个系统设计按功能划分主要分为两个模块,一个是对流经移动设备的信息流进行加解密控制模块,另一个是对授权码文件的维护模块,主要完成用户的添加,删除操作以及授权码的变更。在结构上可分为应用层控制程序和文件过滤驱动层程序。总体设计图如1所示。

1.2 应用控制程序

应用控制程序主要用于向驱动程序发送控制指令以及传递用户信息。

文件类型的选择,用于指定流经移动设备的信息流的读/写方式,驱动则根据应用层传递的文件类型信息完成读/写操作。

控制指令的发送,用于向文件过滤驱动发送用户的添加/删除,授权码更改的操作请求。需要说明的是为了防止授权文件被恶意的修改或删除,文件过滤驱动本身对文件的访问进行了控制,除了允许驱动自身对该文件进行各种操作外,拒绝一切其他进程的访问。应用控制程序通过Devie Io Control这个API与文件过滤驱动程序进行交互,文件过滤驱动程序在IRP_MJ_DEVICE_CONTROL这个类型的IRP的分发例程中获取应用层传递下来的数据信息,并根据不同的功能码来响应应用层的操作请求,完成对用户和授权码的维护工作。

C T L宏定义:

#define

IO_ADDSENDDATA_EVENT//添加用户数据传递信号

CTL_CODE

(OBJCTRL_DEVICE_TYPE,0x03,M E T H O D_O U T_D I R E C T,FILE_ANY_ACCESS)

#d ef in e

IO_DELSENDDATA_EVENT//删除用户数据传递信号

CTL_CODE

(OBJCTRL_DEVICE_TYPE,0x04,M E T H O D_O U T_D I R E C T,FILE_ANY_ACCESS)

#define IO_UPPWSENDDATA_EVENT//修改授权码数据传递信号

CTL_CODE

(OBJCTRL_DEVICE_TYPE,0x05M E T H O D_O U T_D I R E C TFILE_ANY_ACCESS)

添加/删除用户,只有管理员用户才能进行新用户的添加,管理员用户是系统安装时直接写入授权文件PwAcl.dat的第一条记录。

1).应用程序向驱动程序发出添加/删除用户请求信号

2).驱动程序生成随机数b传递给应用程序

3).应用程序接收到随机数b后,计算Hash(Hash(用户授权码),用户名,随机数b),计算由管理员授权码的Hash值作为密钥,使用Sms4加密算法加密的EHash(管理员授权码)(Hash(用户授权码),用户名,随机数b)一起传递给驱动程序。传递的数据结构为:

typedef struct TagAddandDelUser

{

Ch ar Hash UserIn for[1 6];//存放Hash(Hash(用户授权码),用户名,随机数b)

C h a r E n c U s e r I n f o r[1 6];//存放E H a s h(管理员授权码)(H a s h(用户授权码),用户名,随机数b)

Char Reserver[16];//保留字段

}ADDANDDELUSER;

变更授权码,完成用户授权码的变更操作

1).应用程序向驱动发出修改授权码请求信号

2).驱动程序生成随机数c传递给应用程序

3).应用程序接收到随机数c后,计算由Hash(原授权码)作为密钥,使用Sms4加密算法加密的EHash(原授权码)(Hash(新授权码),用户名,随机数c)以及Hash(Hash(新授权码),用户名,随机数c),把它们一起传递给驱动程序。传递的数据结构为:

typedef struct TagPwUpdate

{

Char HashPwInfor[16];//存放Hash(Hash(新授权码),用户名,随机数c)

C h a r E n c P w I n f o r[1 6];//存放E H a s h(原授权码)(H a s h(新授权码),用户名,随机数c)

Char Reserve[16];//保留字段

}PWUPDATE;

1.3 文件过滤驱动层设计

文件过滤驱动程序主要完成移动设备的自动识别,流经移动设备的信息流的加解密控制,授权码文件的维护工作。

1.3.1 移动设备的自动识别和绑定

针对移动设备的访问控制的首要问题是移动设备的识别。在文件过滤驱动中捕获新卷加载操作并通过总线查询方式来获得加载的设备类型:总线类型若为3则代表一般硬盘,为7时则表示USB接口设备。部分代码如下:

ULONG GetStorageDeviceBusType(INpDEVICE_OBJECT DeviceObject){

……

//we should build the query irpourselves

New Irp=Io Build Device Io Control Reques(IOCTL_STORAGE_QUERY_PROPERTY,DeviceObject,(PVOID)&Query,sizeof(Query),(PVOID)Buffer,sizeof(Buffer),FALSE,&WaitEvent,&IoStatus);

……

Descriptor=

(PSTORAGE_DEVICE_DESCRIPTOR)Buffer;

return Descriptor->BusType;

}

1.3.2 加/解密模块

在文件系统过滤驱动程序的DriverEntry函数中指定读/写IRP处理例程,在处理例程中分别完成信息的加解密操作。

Driver Ob ject->Major Function[IRP_MJ_WRITE]=SfWrite;

Driver Ob ject->MajorFunction [IRP_MJ_READ]=SfRead;

为了防止了非授权用户对移动设备的明文写入和密文解密读出,明文写入和密文读出的过程需要进行用户名和授权码的验证。加/解密操作中采用的是SMS4密码算法,SMS4是国内官方公布的第一个商用分组密码算法,分组长度为128比特,密钥长度为128比特。

写操作请求处理过程

1).判断写入的目地设备是否为移动设备

2).如果写入的目地设备不是移动设备,则将写请求向下层合适的文件系统驱动传递。如果是移动设备,发送写文件类型查询信号给应用层程序,等待应用层程序的响应。

3).获取应用层传下来的写文件类型及用户信息,如果写文件类型是“明文”则进行用户名和授权码的验证,验证通过则直接将IRP向下层合适的文件系统驱动传递即直接明文写入,验证不通过则写操作禁止并返回。如果获取的写文件类型是“密文”则不需要进行用户名和授权码的验证,直接加密写入。

读操作请求处理过程

读操作处理函数基本是写操作的相反过程,但又有不同,过滤驱动器需要借助低层驱动程序才能取得磁盘数据,所以在截获IRP_MJ_READ功能时,应设置I/O Completion例程。当低层驱动程序完成读操作后,会回调此I/O Completion例程,这时可进行解密操作。

1.3.3 授权文件的维护模块

该模块主要根据应用层传递下来的功能码完成用户的添加/删除,以及授权码的变更操作。受控文件的维护授权文件PwAcl.dat记录项的格式如下:

2. 结束语

基于过滤文件驱动的移动设备访问控制系统的实现,在不限制移动设备可用性的同时,对信息的外向流动进行了控制,有效的降低了因移动设备的使用或遗失所造成的私密信息泄露的风险。

摘要:重要数据的外向流动是导致泄密的主要途径之一。移动设备作为数据外向流动的载体,如何对它的使用进行管理是现在信息安全领域一个不容忽视的问题。本文主要介绍了文件过滤驱动的相关知识,并基于文件过滤驱动实现了对移动设备的访问控制系统。

关键词:文件过滤驱动,移动设备,SMS4

参考文献

[1]Trusted Computing Group.TPM Main Part1Design Principles.Specification Version1.2[R].TCG.New York.2006.99-102

[2]Microsoft Company.Microsoft Windows Instalable File System Kit Documentation[EB].2002.33-212

[3]http://www.driverdevelop.com.2007-3.

[4]董亮卫,黄鹂声,张文婧,王麟峰.WINDOWS NT文件系统过滤驱动程序在信息安全中的应用.信息技术.2005年10月.90-91

[5]李民,方勇,刘林超,熊帆.文件过滤驱动及应用.信息与电子工程.2005年11月.23

设备访问 篇2

acl注意事项:

1)一个表中的规则条目不能有冲突的存在

2)acl表建立后默认拒绝所有主机的所有流量

3)因为acl表有优先级的存在所有必须想好拒绝和允许那个先写

4)acl只能用在三层交换或者路由器上

5)acl的应用包括两个步骤:创建acl 在端口应用acl(如有vlan在vlan口应用即可,如没有vlan在物理口应用即可)

6)配置命名acl时,如果acl条目没有指定优先级,则新添加的默认在acl表的最后一个

7)同一acl表可应用于多个端口,前提是不冲突

设备访问 篇3

网络安全联动系统中的主机、交换机、防病毒系统、漏洞扫描器、VPN、防火墙及入侵检测系统[1]的协同虽然提高了设备运行的安全可靠性,但也因其基于本地配置的特点,引发了访问控制策略一致性问题。随着电力信息化的发展以及网络规模的扩大,访问控制策略复杂度增加,策略冲突问题日益严重[2,3]。因此,针对联动系统的安全设备访问控制策略制定一种有效的策略冲突检测和消解方法具有重要意义。

Lupu等人提出将策略冲突归结于形式冲突和语义冲突[4,5],国内外研究学者以此为基础,在策略一致性检测和冲突消解领域做了大量工作并取得多项成果。梅芳等人进一步提出基于多维的策略冲突检测算法[6],策略分为条件部分和动作部分,条件部分中属性与多维空间区域的维度一一对应,2条或多条策略在多维空间区域中出现重叠即为潜在的冲突策略,进一步判断若动作部分不同则视为冲突发生,但该检测方法效率不高。吴蓓等提出一种引入规范化和离散化技术的新型冲突检测算法[7],将策略属性数据统一映射到一个特定的具有相同性质的集合,通过集合运算间接实现策略域数据间的关系运算,并以此为基础进行冲突检测,此种方法虽然通过离散化减少了所需的存储空间,但仍无法从根本上优化存储空间需求量过大的问题。蒋康丽等提供了一种多维范围查找算法的思路[8],将复杂的策略问题分解为若干个子问题,利用图论知识分别对其进行描述进而检测系统策略有无冲突,该方法的有效性依赖于有向图的定义。

本文针对联动系统中网络安全设备访问控制的特点将策略分为系统级和网络级2类,在吴蓓等人思想基础上提出一种新的数据预处理方法,对访问控制策略进行分类,按照分类结果使用策略冲突算法进行有针对性的比较,最终检测出静态冲突及部分潜在策略冲突。此种思想利用预处理方法提高了策略比较算法的执行效率,同时也解决了先前思想中浪费大量存储空间的问题。

1 访问控制策略及策略间关系分析

1.1 访问控制策略

访问控制策略是一组访问控制规则的集合,定义了实施访问控制的主体对接受访问控制客体所做出的行为动作。应用级策略是在应用层次上对用户的管理动作策略,可细分为授权策略、强制策略及安全管理策略等。网络级策略是对网络通信加以约束的规则[9]。策略由五元组policy(modality,subject,target,tirgger,condition)构成[10],可形式化表示为P(M,S,TA,TI,C)→A,它们的含义分别为:

M表示规则模式元素,包括肯定授权A+、否定授权A–、义务O+、抑制O–等[11];

S表示实施访问控制策略的主体,可以是主机、各类网络安全设备、服务器等;

TA表示受访问控制策略的客体,可以是主机、数据包等;

TI表示触发策略规则执行的事件,例如数据包到达、资源启动等;

C表示策略生效的条件,例如时间约束、网络资源约束等;

A表示访问控制策略的行为。

在联动系统网络安全设备的访问控制策略中,应用级策略表现为用户、角色管理代理能访问哪些资源、发生安全问题时应采取的行为动作等,是一种粗粒度的访问控制。网络级策略是防火墙、入侵检测系统、VPN网关等网络安全设备对通信流进行控制的一系列包过滤策略,是一种细粒度的访问控制。

1.2 访问控制策略间关系

具有n条策略的集合P中的任一条策略pi={mi,si1,tai2,tii3,ci4},除mi外其余分量均为k维分量(1≤k≤n),其对应动作为Ai。(1≤i≤n,1≤j≤n),若pi∩pj=Ø,则策略无关,记为关系R1;若pi pj或pipj,则策略包含,记为关系R2;若pi∩pj≠Ø且pi∩pj≠pi且pi∩pj≠pj,则策略交叉,记为关系R3。

1.3 访问控制策略冲突类型

当策略间关系为R2或R3且A1=A2时,策略存在冗余冲突(2条策略一致)或屏蔽冲突(前者范围大于后者)或泛化冲突(后者范围大于前者);当策略间的关系为R2且A1≠A2时,策略存在相反冲突;当策略间的关系为R3且A1≠A2时,策略存在关联冲突。

2 访问控制策略冲突检测算法

应用级策略和网络级策略的差异性导致策略描述类型的差异,例如一条“工作人员可以在工作时间(9:00-17:30)访问计算机”的授权策略描述为:

“如服务器向外发送信息时,应采用加密手段”的应用级策略描述为:

防火墙过滤规则描述为:

因此,在联动系统网络安全设备中制定通用的访问控制策略冲突检测算法,首先要对策略数据进行预处理并分类[12]。

2.1 访问控制策略数据预处理

预处理原则是将策略中每个非单级向量进行细分化简。化简遵循将连续的值表示为区间形式,将离散值和连续值并有的集合分离成一条单值和一条区间的策略形式。例如上述p1策略经过预处理表示为:

2.2 访问控制策略数据分类

策略的分类在预处理过程中进行,这样能够保证在线性时间内同时进行分类和预处理Pretreatment(P),提高了系统效率。分类原则对比策略元素中的modality属性,经分类后的策略会归为“A+,A–,O+,O–,NULL”5种类型。

2.3 访问控制策略冲突检测算法执行流程

策略冲突检测算法针对分类后的5种类型进行冲突检测,因在预处理阶段只是对字段进行简单处理,故在算法比较阶段的设计会相对复杂,在本文中匹配字符类型采用隔行跳过(即遇到不同字段类型采用自动跳过2个空格间歇的方式,因描述的方式为“属性名,属性值,属性名,属性值...”),匹配数据类型根据IP地址特点用“.”进行字段边界判断,并根据IP地址类型进行分类,若不属于同一字段的类型,单纯的比较已不能满足要求时,算法采用将IP地址转化为二进制并做差的方法进行,碰到区间类型的域用“[”和“]”进行边界检测。访问控制策略冲突检测算法执行流程如图1所示。

访问控制策略冲突检测算法执行流程描述如下:

1)按照上文提及的规则对每条访问控制策略进行处理;

2)在预处理的过程中也即遍历了每条策略,同时进行分类处理;

3)分类处理后的系统在进入策略比较算法流程前,系统会根据既定的规则对访问控制策略进行有针对性的选择比较,规则如下:①对于模式类型为A+,A–,O+,O–的策略所引发的冲突分类为A+与A–、A–与O+、O+与O–,因此利用已分类的策略数据,根据策略冲突类型,仅对可能产生冲突类型的策略进行两两比较并检测;②对于模式类型为NULL的策略将策略内的规则统一进行两两比较并检测。

4)进入策略比较算法得出结果。

策略比较算法过程及结果类型的分类如图2所示。

策略比较算法过程消息描述如下:

1)策略进入到比较算法中,策略间关系会被初步判定为R1或R2或R3(上文中已定义);

2)若关系为R1,则直接得出策略间无冲突的结果;否则进入R2或R3根据策略行为进一步判定,转3);

3)若策略行为关系为②或④(A1≠A2),则R3—②得出关联冲突,R2—④得出相反冲突;否则A1=A2进入下层比较,根据策略间的关系进一步判定,转4);

4)若策略间关系为⑤或⑦,即策略集合P中的策略关系为pipj(前者范围大于后者),则策略为屏蔽冲突;否则若策略间关系为⑥或⑧,即策略集合P中的策略关系为pipj(后者范围大于前者),则策略为泛化冲突;否则策略间关系为⑨,即策略集合P中的策略关系为pi=pj(2条策略一致),则策略为冗余冲突。

3 复杂度分析和实验

3.1 算法的复杂性分析

设系统中的策略规则条数为N条,遍历策略进行预处理并分类的时间复杂度为O(n),之后引入了分类的思想,假设5种类型策略规则数量基本相同即每条策略规则条数为N/6。

设规则关系发生的概率为PRC(冗余冲突)、PSC(屏蔽冲突)、PGC(泛化冲突)、PAC(关联冲突)、PIC(相反冲突)、PNC(无冲突),PRC+PSC+PGC+PAC+PIC+PNC=1。在未引入分类之前要进行比较的次数为N(N–1)/2次,冲突检测效率的数学期望为。其中,CN2表示N条策略两两组合的次数,Pi(1≤i≤6)表示6种冲突分别发生的概率。

经改进后的冲突检测算法要进行的比较次数为,其中只有5种冲突需要检测,数学期望为。

由此可见,经过分类后的检测算法效率更高。

3.2 算法的扩展性分析

通过预处理操作,使策略的冲突检测算法都在集合区间和集合域上进行运算,当新增一条策略属性时,系统无需新增加策略属性的冲突检测算法,只需利用已有算法将新增的属性按照一定的规则映射到集合区间或集合域上即可完成冲突检测,因此该算法具有良好的扩展性。

3.3 算法的实验及结果分析

实验环境为Intel Core 2 Duo,2 GHz,2 G RAM,Windows7,Java语言,使用My SQL数据库存储安全策略和规则。以一个安全域中的策略作为研究对象,将策略规则由10条逐步增加到200条,随着策略规则的增多,对应的算法执行时间随之增加,策略冲突检测算法执行结果如图3所示,总体执行效率比较理想。

4 结语

本文根据联动系统安全设备访问控制策略的特点,通过对应用级策略和网络级策略进行分析,制定了一种适用于联动系统的策略冲突检测算法。通过简单预处理,能够解决策略不一致匹配比较难的问题,不会占用过多的存储空间,从最近最优的原则出发引入分类排序的思想,减少了检测匹配的次数,提升了算法检测的性能,最后针对不同类型的数据进行恰当的处理,并进行策略冲突检测。结果表明,该算法能够检测出静态策略冲突并对可能发生的潜在策略冲突具有一定的预检测能力。下一步工作将致力于对检测出来的策略进行冲突消解,并试图找出一种更合适的方法对系统动态运行中的策略冲突进行检测,并研究电力信息化中智能电网访问控制策略冲突的检测和消解。

摘要:联动系统安全设备下的访问控制策略确保了防火墙、VPN、防病毒系统和漏洞扫描器等安全设备协同工作,有效地保证了网络信息系统的安全性。文章首先定义了访问控制策略及策略冲突,根据实际环境对策略类型及冲突进行分类。其次,针对不同的策略数据类型进行简单的预处理,根据冲突特点对策略进行归并,利用策略冲突检测算法对策略进行冲突检测。最后,通过算法的复杂度分析和实验结果,说明此策略检测方法具有理想的执行效率。

关键词:网络安全,访问控制策略,策略冲突,冲突检测

参考文献

[1]丁冠军,樊邦奎,兰海滨,等.智能电网信息安全威胁及防御策略研究[J].电力信息与通信技术,2014,12(5):58-63.DING Guan-jun,FAN Bang-kui,LAN Hai-bin,et al.Research on information security threats and defense strategies for smart grid[J].Electric Power Information and Communication Technology,2014,12(5):58-63.

[2]张磊,杨明杰,王刚.促进电力信息化业务稳定运行的性能优化机制研究[J].电力信息与通信技术,2015,13(8):15-19.ZHANG Lei,YANG Ming-jie,WANG Gang.Research on the performance optimization mechanism for promoting the stable operation of electric power information business[J].Electric Power Information and Communication Technology,2015,13(8):15-19.

[3]刘雪艳,张强,李战明.智能电网信息安全研究综述[J].电力信息与通信技术,2014,12(4):56-60.LIU Xue-yan,ZHANG Qiang,LI Zhan-ming.A survey on information security for smart grid[J].Electric Power Information and Communication Technology,2014,12(4):56-60.

[4]LUPU E,SLOMAN M.Conflict analysis for management policies[C]//Proceedings of the Fifth IFIP/IEEE International Symposium on Integrated Network Management IM’97,SanDiego,1997:430-443.

[5]LUPU E,SLOMAN M.Conflicts in policy based distributed systems Management[J].IEEE Trans.Software EngineeringSpecial Issue on Inconsistency Management,1999,25(6):852-869.

[6]梅芳.PBNM系统中策略冲突检测与消解机制的研究[D].吉林:吉林大学,2005

[7]吴蓓,陈性元,张永福,等.可扩展的网络安全设备内策略冲突检测算法[J].计算机应用研究,2010,27(4):1484-1488.WU Bei,CHEN Xing-yuan,ZHANG Yong-fu,et al.Extendible intra network security policy conflict detection algorithm[J].Application Research of Computers,2010,27(4):1484-1488.

[8]蒋康丽,熊齐邦.策略网管中规则冲突检测算法的研究[J].计算机工程与设计,2005,26(1):79-81,96.JIANG Kang-li,XIONG Qi-bang.Research on conflict detection algorithms for policy-based network management system[J].Computer Engineering and Design,2005,26(1):79-81,96.

[9]韩智文,朱培栋,龚正虎.策略冲突的检测和解决方法研究[J].计算机工程与科学,2006(5):18-22.HAN Zhi-wen,ZHU Pei-dong,GONG Zheng-hu.Detecting and resolving policy conflicts[J].Computer Engineering and Science,2006(5):18-22.

[10]WU B,CHEN X Y,WANG Y L,et al.Network system modelbased multi-level policy generation and representation[C]//Proof IEEE International Conference on Computer Science and Software Engineering,Wuhan,2008:283-287.

[11]DAMIANOU N,DULAY N,LUPU E,et al.The ponder policy specification language[C]//Proc.Policy 2001,International Workshop on Policies for Distributed Systems and Networks,Bristol,2001:18-39.

思修周末实践家庭访问之访问提纲 篇4

一、访问目的

通过走访调查了解一个或者多个家庭在改革开放以后家庭成员的工作条件和整个家庭生活质量的变化(由条件艰苦到现在基本小康的变化)来反映出国家改革政策惠及人民,给人民学习、工作、生活带来 的质的提高,从而深刻反映了“家与国”中国对于家的重要性。

二、被访问家庭简单背景介绍

三、访问相关内容

1.家中长辈出生年代 2.家中成员文化教育程度 3.改革开放之前家中主要经济来源

4.改革开放之前家中主要成员工作及工作条件 5.改革开放之前家中生活条件 6.家中晚辈出生年代

7.家中晚辈文化教育程度及上学条件 8.改革开放之后家中主要经济来源

9.改革开放之后家中主要成员工作及工作条件 10.改革开放之后家中生活条件

设备访问 篇5

VB访问SQL Server数据库技术是随着时间的推移,计算机技术的发展逐渐更加成熟与完善。VB指的是Visual Basic的简称,是微软公司开发的一种事件驱动的变成语言。使用VB的人群甚至比目前流行的Java/C#还要多。它的前身是BASIC编程语言。它有友好的图形用户界面和快速程序开发系统,可以快速开发应用程序,是许多开发者比较喜爱的开发语言。SQL Server是由Microsoft、Sybase和Ashton-Tate3家公司共同开发的一种关系数据库管理系统。SQL Server有比较安全可靠的存储功能,使得用户可以构建和管理用于业务的高可用和高性能的数据应用程序。还可以有效地执行大规模的联机事务处理。可以降低开发和管理数据的开发时间和成本,是一种智能的数据库管理系统。由于VB和SQL Server都是目前比较流行的,所以两者的结合方法也是大家经常用到的。下文就介绍VB访问SQL Server的访问技术。

2 VB数据库访问技术的发展

在早期的Visual Basic版本中,只能通过简单的ASCII文件访问工具。随着用户要求的逐渐增多,为了迎合用户需要转移含有远程数据源的索引顺序存放法数据,在Visual Basic3.0版本,微软增加了Microsoft Jet Database Engine(简称Jet)和Data Access Object(简称DAO)。随着用户需求的不断改变,Visual Basic4.0/5.0又出现了新的数据接口Remote Data Object(简称RDO);最后出现了ActiveX Data Objects(简称ADO),它具有更好的灵活性和易用性,功能更加全面。其发展历程如表1所示。

3 VB访问SQL Server数据库

VB与SQL的连接方式有多种,我们本篇主要介绍5种:Jet方式,ODBC API编程访问,使用SQL Server提供的Visual Basic库API编程,RDO远程数据对象,ADO数据对象。

3.1 Jet方式

Jet是Microsoft Jet Database Engine的缩写。Jet方式的访问方法虽然不是最好的客户机/服务器管理方式,但是也有很多优势。使用Jet访问SQL Server的过程如下:VB应用程序将请求的访问语句发送至Jet引擎,Jet引擎通过MASJT200.DLL这个dll进行查询优化,然后与驱动程序管理器通信,主要是靠ODBC.DLL,驱动程序管理器再通过调用驱动器的相关函数,连接到数据源,驱动器程序主要是SQLSRVR.DLL,最后向SQL Server提交SQL语句且返回请求的结果,如图1所示。

访问的关键代码如下:

3.2 利用ODBC API编程

开放性数据库互联ODBC(Open Database Connectivity)已经成为了访问数据库的一个标准,使用ODBC API函数的编程难度最大,但是获得的存取数据库的性能也是比较好的。在之后的性能比较中再作详细阐述。与使用其他动态库函数一样,在VB中使用ODBC API需要事先声明要使用的函数及其数据结构等。调用ODBC API函数访问ODBC数据库代码编写一般过程如下:

3.3 使用VBSQL对DB库API编程

VBSQL即为SQL Server的Visual Basic库,它为Visual Basic程序员提供了访问SQL Server的API。DB库是SQL Server提供的national API。VBSQL包含VBSQL.VBX,VBSQL.BI和VBSQL.HLP 3个文件。功能如表2所示。

需要注意的是,在使用VBSQL方式时,需要在Visual Basic工程文件中将VBSQL.BI文件加入,并确保VB程序能找到VBSQL.VBX文件。

3.4 RDO远程数据对象

RDO访问数据库属于关系模式访问,是针对行和列来处理。RDO综合了前3种访问数据库对象的优点,可直接访问数据库存储过程,支持T-SQL,与一些工具的无缝集成等优势。RDO其实也是ODBC访问,是专门针对SQL Server等数据库设计的。RDO不同于前3种访问方式是它被集成在VB中。RDO对象带有属性和方法,在这些属性和方法中,含有对ODBC API函数的调用。下面介绍几种经常用到的RDO对象。

(1)rdoEngine对象。在RDO的结构中,rdoEngine对象是最上层的对象,它包含了所有其他的对象,用于对RDO全局属性的参数、选项进行设置。

(2)rdoEnvironment对象。RDO对象在创建rdoEngine对象时,会将rdoEnviroment对象的初始值设成默认值0。通常,不需要自己新建该对象,只需要对默认生成的该对象进行处理就可以。

(3)rdoConnection对象,该对象用于同SQL Server的连接管理。

3.5 ADO数据对象

ADO是Active Data Objects的缩写。它以OLE DB技术为基础,可对各种各样的数据,如电子邮件、文本文件、复合文件等数据进行统一的存取。VB中提供了专门的ADO访问控件。它可以快速建立与数据库之间的绑定。只要该控件具有DataSource属性,则便可与ADO控件绑定,任何只要是复合OLE DB规则的数据源均可作为ADO控件的数据源。由于ADO Data控件属于ActiveX控件,所以首先需要将其添加到VB的工具栏中。添加方法:单击“工程”→“部件”菜单选项,选中“Microsoft ADO Data Control 6.0(OLE DB)”后,按“确定”,此时ADO数据控件便出现在工具箱中。

绑定数据源。将ADO Data控件拖拽到窗体上。选中属性窗口———使用连接字符串,单击“生成”按钮,弹出“数据链接属性”对话框;选择“提供程序”选项卡,在列表中选择“Microsoft OLE DB Provider For SQL SERVER”选项,单击“下一步”按钮。指定服务器的名称和登录信息并选择本连接要使用的数据库文件;单击“测试连接”按钮以确定连接是否正常。若得到测试成功的消息,单击“确定”按钮以继续;在“属性页”对话框中选择“记录源”选项卡,在命令类型下拉列表中选择“2-adCmdTable”选项,在表或存储过程名称下拉列表中选择数据表“authors”。(若选择的命令类型为“1-adCmdText”,则可在命令文本框中输入SQL查询语句select*from authors)。

远程连接格式:

4 结语

数据库访问方式的5种方法各有优缺点。Jet方法便于使用但是性能最慢,ODBC API速度慢于VBSQL。RDO具备ODBC的处理方法,可直接执行大多数ODBC API函数。RDO的优势在于与VB的无缝集成。开发者可以根据自己的需要选择合适的数据库访问方式。

摘要:Visual Basic是使用量比较广发的开发语言,而SQL Server也是目前比较流行的关系型数据库。讨论了Vi-sual Basic应用程序访问数据库的发展过程,介绍了访问SQL Server数据库的几种常用方法。

关键词:VB,SQL Server,访问接口

参考文献

[1]王昕.基于VB+SQL数据库的方法及接口比较的研究[J].微计算机信息,2009,15:86-89.

[2]乔美娥.ADO技术在VB系统开发中的高级应用[J].中国科技信息,2008,24:84-85.

[3]杨艳.浅析VB中三种数据访问技术[J].中小企业管理与科技(上旬刊),2009,4:244.

[4]耿小芬,徐忠军.Visual Basic中的数据访问技术[J].中国教育信息化高职高教,2009,13:83-84.

[5]姚小兵.VB中ADO技术的应用[J].电脑与信息技术,2005,13(4):22-24.

[6]刘韬.VisualBasic6,0数据库系统开发实例导航[M].北京:人民邮电出版社,2003.

上一篇:民族高校教育管理研究下一篇:中国语言与文化