设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: zhuyiwen
打印 上一主题 下一主题

[页] [文章]怎样在Internet上配置数据访问页(DAP)

[复制链接]
21#
发表于 2005-11-16 18:18:00 | 只看该作者
感谢楼主,我寻找这个问题的资料很久了。
22#
发表于 2006-1-25 17:46:00 | 只看该作者
续朱前辈所译,狗尾续貂,请大家斧正!


认证及数据库防护问题


术语“认证”表示对用户身份进行确认的处理。其典型的表现方式如下:当要登录到一个网络或打开一个数据库时,用户被提示输入姓名和密码。在用户被允许继续操作之前,其所输入的姓名和密码必须合法。在利用数据访问页工作时,你必须处理和协调三种不同的认证系统:


l         后台数据库使用的认证系统,不同之处取决于你是使用Access数据库还是SQL数据库。


l         发布网页的IIS所使用的认证系统。IIS支持多种认证方式来控制谁可以打开网页,或者建立安全界限用以打开受到保护并用于网页的资源——数据访问页所使用的数据库。


l         局域网使用的认证系统。用户首次登录网络时,他或她被系统所认证。视IIS和数据库的配置而定,如果用户是通过Windows NT域控制器来认证的,你可以使安全管理简单化:用户凭据直接转给IIS及数据库安全系统。这通常被称为使用“完全的Windows防护”。





对于Access数据库,是否可以访问数据库文件本身,还有一个因素——文件系统。因为Access数据库本身是一个文件,用户使用数据访问页连接到Access数据库时还必须有足够的文件系统权限(由网络操作系统确定)才能打开或者写入数据库文件。必须处理好此因素才能使认证工作正确。





配置数据库认证和防护


你可以用不同的方法来拒绝非认证访问,这取决于你是用Access数据库还是SQL数据库作为数据访问页的后台。在所有的情况下,后台数据库本身应当足够安全以用于控制访问,不管是数据访问页还是其他方面。


为了达到最大限度的灵活性,在使用Access数据库时,你应该使用“用户级安全”保护数据库。“用户级安全”允许你定义不同的角色(在产品文档中被称为“组”),其具备不同的权限级别。如果不需要这种级别的灵活性,打开数据库时,你可以要求只是单独地使用一个数据库密码。有关在Access数据库里如何使用防护的更多知识,请参见Access帮助。


对于SQL Server数据库,为了保护数据库,你应当采用“纯粹SQL Server安全账号”或者“完全Windows NT防护账号”对用户进行认证。当你使用“纯粹SQL Server安全账号”时,用户及组账号由服务器自身来定义和储存。使用“纯粹SQL Server安全账号”时,用户必须用由服务器定义的正确的用户名及密码来登录。当你使用“完全Windows NT防护”时,由Windows NT网络定义的用户及组账号被用于对用户进行认证来对SQL Server数据库进行防护。这意味着用户在打开数据库之前无须记忆额外的用户名及密码来登录网络;他们会自动登录——通过他们的Windows NT用户账号(或组账号——用户账号是其成员之一)。用户及组账号的角色及权限仍然由数据库本身来定义。只是你用Windows NT用户及组账号代替使用“纯粹SQL Server安全账号”。有关在SQL Server数据库里如何使用防护的更多知识,请参见“SQL Server在线书籍”,它和SQL Server一起安装,也可以从微软的下载中心下载。





<
23#
发表于 2006-1-26 10:11:00 | 只看该作者
有学到新的知识了
24#
发表于 2006-1-27 02:51:00 | 只看该作者
能直接做演示就好了
25#
发表于 2006-1-27 22:25:00 | 只看该作者
(续前)


如果你没有嵌入Access数据库的数据库密码,或者用的是SQL Server 或 MSDE数据库,通常,执行下列步骤来防止数据访问页对数据库的非认证访问:


1、  防止用户身份及密码(制作数据访问页时你用于访问数据库的)被保存在网页里;


2、  考虑如何对使用网页的用户进行认证,也就是说,考虑如何对他们登录时的身份进行输入及验证;


3、  考虑如何或如果你可以为不同的用户控制访问级别;


4、  防止隐藏在网页里的恶意脚本的非认证访问。





防止用户身份及密码被保存在网页里


对于采用Access数据库做后台,并且使用用户级安全作保护,唯一防止非认证访问的方法是:防止安全账号的用户身份及密码被保存在用于连接数据库的信息里。数据访问页能够连接数据库之前会显示一个登录对话框:要求用户输入正确的登录账号名及密码。这也适用于以SQL Server做后台的数据库,无论它是采用“纯粹SQL Server安全账号”还是采用“完全Windows NT防护账号”进行认证。为了防止登录密码被保存在数据访问页的连接信息里,你必须使用“数据链接属性”对话框,如下步骤所示:


防止用于登录数据库的密码被保存在数据访问页里


1、  启动Access并且用设计模式打开你想使用的数据访问页;


2、  在“视图”菜单里单击“字段列表”;


3、  在“数据库”选项卡里,右击“数据库名”,再单击“连接”;


4、  在“输入信息以登录到服务器”里,确保“允许保存密码”复选框被清除;


5、  单击“确定”,然后保存你对数据访问页的更改。


现在,无论何时打开数据访问页,用户都必须提供正确的用户名及密码以登录到数据库,或者如果你使用SQL Server 的完全防护特性,用户身份将允许通行并转到Windows NT Server网络的认证系统。





连接到Access数据库的数据访问页用户的认证


设置了防护的Access数据库的用户必须用保存在工作组信息文件(.mdw)里的账号信息进行认证。为了使设置了防护的Access数据库认证工作正确,你还必须确保数据访问页使用的连接信息指定正确的工作组信息文件。为了达此目的,你还必须确保工作组信息文件存放的地点,如公用的网络共享,能让那些需要打开数据访问页的用户都能访问到。下列步骤描述如何为数据访问页指定这些信息:


指定工作组信息文件用于打开连接到设置了防护的Access数据库(.mdb)
26#
发表于 2006-2-5 00:31:00 | 只看该作者
(续前)


控制访问级别


通过数据访问页打开数据库时,控制访问级别的策略类似于他们在桌面解决方案时的使用。对于Access数据库,为数据库建立用户级别安全之后,你可以使用下列方法中的任何一种:


l         为你的数据访问页用户定义一个用户账号,拥有你允许的合适的访问级别。在数据访问页连接信息里使用“数据链接属性”对话框保存此账号的名字及密码。这个账号及密码会用在所有打开数据访问页的用户上。同样,要确保将正确的工作组信息文件放置于共享的位置上,并且在“数据链接属性”对话框里指定到此文件的路径,如同在本文前面描述的那样。


l         为你的数据访问页用户定义你允许的合适的组及访问级别。要么创建本地SQL Server用户账号名称及密码分发给通过验证的数据访问页的用户,要么使用集成Windows NT安全。分配用户到合适的组。如果你使用本地SQL Server账号,使用“数据链接属性”对话框以防止密码保存在数据访问页的连接信息里,数据访问页的用户能够打开数据库之前就需要输入合法的用户名及密码。如果你使用集成Windows NT安全,使用“数据链接属性”对话框以确保数据访问页会使用那种方法来对那些通过网页连接打开数据库的用户进行验证。


当你对数据问页既使用Access数据库又使用SQL Server数据库时,如果你想允许用户能够更新数据库的信息,你必须对那些含有你想更新的数据的表授予合适的权限(如:更新、插入、和/或删除权限)。对数据访问页使用的查询(Access)或视图(SQL Server)授予权限是不够的。


      重要 依据(1)你为数据访问页选择的数据访问方式,(2)数据库置于IIS用于发布网页的网络地点,以及(3)那台服务器如何定义验证,你最好不要为每一个用户控制访问权限。也就是说,对于打开网页的所有用户,你都应该只基于一个单一的账号来控制访问,更多信息,请参见下一节,配置因特网信息服务器验证的方法。





配置因特网信息服务器验证的方法


对于采用微软因特网信息服务器发布的网页,你可以使用三种验证方式:


l         匿名访问验证(更多信息请参见另文:对数据访问页进行编程),提供一个匿名用户账号进行对网页的所有访问;


l         Windows NT质询/响应验证(IIS 5.0中,被称为集成Windows验证);


l         基本验证。


使用三层访问数据访问页时,每种方式都有其优缺点,并且都需要进行额外的配置才能正常工作。


将数据访问页配置成三层访问访问后,你要考虑你愿意使用哪种方式对网页进行验证。在你发布网页的IIS计算机上,你可以为单一的网页或整个文件夹配置验证方式。下列步骤描述如何配置验证方式。


为数据访问页配置验证方式


1、  在运行IIS的计算机上,启动因特网服务管理器


<F
27#
发表于 2006-2-5 18:37:00 | 只看该作者
(续前)


使用Windows NT质询/响应验证
如果你清除对于网页或网页所在文件夹的“允许匿名访问”选项,并且选择Windows NT质询/响应验证选项,IIS将会使用打开网页的用户账号连接数据库。在Windows NT Server 4.0里有一个重要的限制:这种连接显得像是别的计算机作一个没有安全界限的“空”会话尝试。这是因为在Windows NT 4.0里,到别的计算机连接的安全界限无法委托(通行)。这意味着:默认的,如果SQL Server或者Access数据库和用于发布网页的IIS位于不同的计算机上的话,连接通常会失败。
在Windows NT 4.0里发布三层访问网页时,有两种方法可以突破上述限制:
你可以在同一台计算机上运行IIS以及数据库服务器(如SQL Server及Access数据库库),并且确保RDS组件使用本地路径访问数据库;
你可以在不同的计算机上运行IIS及数据库服务器,但如果网页要访问SQL Server数据库,你必须使用TCP/IP网络库,它不需要基于会话的安全;如果网页访问Access数据库,你必须为注册表的NullSessionShares值指定到达数据库的路径。
如果IIS及你的SQL Server数据库在运行Windows 2000服务器的计算机上运行,上述的每种方法都能工作,然而Windows 2000包括新的Kerberos版本5的验证特性,它允许你从一台计算机委托(通行)用户的安全界限到另一台计算机。通过使用Windows 2000的这种特性,当IIS和数据库服务器运行在不同的计算机上时,你可以建立一个安全的连接。所有这三种方法都会下一节里描述。


在同一台计算机上运行IIS和数据库服务器时配置Windows NT质询/响应验证
要避免三层访问网页的Windows NT Server 4.0“空连接”限制,其中一个方法是把数据库房在和运行IIS以发布网页的同一台计算机上。对于SQL Server数据库,SQL Server必须安装及运行在那台计算机上。对于Access数据库,数据库必须存在于那台计算机上的本地文件夹。接着,对于连接的数据源使用本地计算机地址。如:对于SQL Server数据库,你需要设置连接的数据源为(本地),而对于Access数据库,你必须设置数据源使用IIS服务器本地的驱动器路径。
当你草创一个使用SQL Server数据库作为数据源的数据访问页时,数据库存放的服务器由他的网络名识别,如DATASERVER1。在你发布网页之前,你必须重设网页的数据源到(本地),MSODSC控件就可以像处理本地的数据库一样将其传给IIS服务器计算机。类似的,当你草创一个使用Access数据库的数据访问页时,在你发布它之前,你要么使用数据库的本地拷贝,要么使用公用共享点的拷贝来进行工作。如果是这样的话,在你制作完网页后,在一台运行IIS实例以用于发布网页的计算机上创建一个文件夹,把数据库的一份拷贝置于
那个文件夹。然后重设网页的数据源到运行IIS的计算机上的本地路径。(如:"C:\Databases\MyDatabase.mdb"; 而不是\\MyServer\Databases\MyDatabase.mdb)。关于在SQL Server以及Access数据源上如何操作,如下步骤所示:


设置数据访问页使用数据库的一个拷贝,它位于运行IIS以发布网页的本地计算机上
启动Access并且用设计模式打开你想使用的数据访问页;
在“视图”菜单里单击“字段列表”;
在“数据库”选项卡里,右击“数据库名”,再单击“连接”;
使用下列方法之一:
对于SQL Server数据库,在“选择或输入数据库名称”对话框的“连接”选项卡上,更改服务器名为“本地”。
对于Access数据库,在“数据源”对话框的“连接”选项卡上,更改到达数据库的路径为数据库位于运行IIS的计算机上的本地副本所在的驱动器及路径,
单击确定,然后保存你对数据访问页的更改。


使用这种验证配置时,如果你想为连接到SQL Server数据库的数据访问页定义安全权限,你必须在服务器上指定将要使用网页的Windows NT用户或组来定义权限。这允许你为不同的用户或组定义不同级别的权限。然而,由于Access用户级别安全不能识别Windows NT登录账号,你将不能定义不同的安全级别。如果你已经定义了用户级别安全,你必须为默认的Admin用户账号定义权限。


这种方法的优点是对于验证用户来说,NT质询/响应验证是比较安全的方法,并且在使用SQL Server数据库时,为不同的用户定义不同级别的权限是很方便的。这种方法的缺点是IIS以及SQL Server都必须置于同一台计算机上限制了扩展性。


允许空连接使用TCP/IP网络库访问SQL Server
三层访问网页连接到SQL Server时 ,另外一种避免Windows NT Server 4.0空连接限制的方法是使用TCP/IP客户端网络库,它并不基于会话安全。下列步骤描述如何做法:
启动Access并且用设计模式打开你想使用的数据访问页;
在“视图”菜单里单击“字段列表”;
在“数据库”选项卡里,右击“数据库名”,再单击“连接”以显示“数据链接属性”对话框;
单击“所有”选项卡,然后双击“网络库”属性;
在“属性值”输入框,输入“DBMSSOCN”。(这是TCP/IP SQL Server客户端网络库[dbmssocn.dll]的名字,默认的,它安装在c:\winnt\system32\ 或c:\windows\system文件夹)
28#
发表于 2006-2-9 01:07:00 | 只看该作者
继续努力!!!
29#
发表于 2006-2-15 22:31:00 | 只看该作者
(续前)


使用基本验证


如果你清除对于网页或网页所在文件夹的“允许匿名访问”及“Windows NT质询/响应验证”选项,并且选择“基本验证”选项,用户在打开网页前,IIS将提示用户输入他或她的用户账号及密码。这种验证方法不使用委托且基于此也没有在Windows NT质询/响应验证那样描述的限制。然而,基本验证以明文形式在网上发送用户的账号及密码信息,它会被恶意用户窃取。如果你想避免这种风险,你可以设置你的服务器用安全套接字层(SSL)加密连接(HTTPS)发布数据访问页。有关如何使用加密连接的信息,请参见微软因特网信息服务器的文档。





远程数据服务安全问题


三层数据访问网页通过使用运行在你的Web服务器上的远程数据服务(RDS)连接到它的数据库。不管网页在不在你的Web服务器上发布,都需要解决RDS数据工厂对象(DataFactory)所产生的一些安全问题。除了这些安全问题,你还必须配置RDS组件以使三层数据访问网页能够正常工作。





MSADC虚拟目录设置


在使用RDS组件之前,你必须确认:在你的Web服务器上含有该组件的目录(默认是C:\Program Files\Common Files\System\msadc)正确的映射到名叫MSADC的虚拟根目录,且具备正确的安全权限。IIS默认的配置一般是正确的,但如果改变了这些配置,你会遇到错误,它告诉你:你的服务器的远程访问配置不正确。


确认RDS组件的虚拟目录及目录安全设置配置正确


1、  启动“Internet服务管理器”。在“程序”子菜单,指向“管理工具”,然后单击“Internet服务管理器”;


2、  在右窗格,位于“默认Web站点”,有个MSADC虚拟目录节点。如果没有MSADC虚拟目录节点,你必须按照下列步骤所示来添加和配置它;


3、  单击MSADC虚拟目录节点,然后在“操作”菜单上,单击“属性”;


4、  在“虚拟目录”选项卡上,确认或设置读和运行权限,如下屏幕快照所示:








图三 MSADC虚拟目录的读和执行权限


5、  在“目录安全性”设置选项卡,验证方法的设置必须和你为你的数据访问页创建的虚拟目录一样。





RDS数据工厂对象安全问题


远程数据服务(RDS)包含一个组件,名叫RDS数据
30#
发表于 2006-2-21 00:06:00 | 只看该作者
(续前)


当RDS运行在“安全”模式时,默认的名叫MSDFMAP.Handler的用户管理器被用来保护数据库免于直接暴露给Web客户端,他们可能会利用不安全的“数据工厂”方法。另外,MSDFMAP.Handler还保护服务器以及服务免受使用OLE DB提供者来访问文件系统及shell命令的攻击。这个管理器的行为由安装在Windows目录(例如C:\WINNT,)的MSDFMAP.ini文件控制,为了允许三层数据访问页对数据库的访问,你(或Web服务器管理员)必须修改MSDFMAP.ini文件。你所使用的方法基于你的网页是连接到Access数据库(.mdb)还是SQL Server/MSDE数据库而有所不同。


MSDFMAP.ini文件包括4种类型的段落














节名称





解释








Connect





用于指定连接字符串映射








SQL





用于指定命令字符串映射 (典型的<FONT face="Times New Ro
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-8 14:22 , Processed in 0.100187 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表