MS SQL入门基础:基于HTTP的数据访问
除了XML 技术之外,Microsoft SQL Server 2000 的开发者们也把通过HTTP 访问的特性(HTTP access9 作为SQL Server 2000 的一个核心特性。这样用户完全可以把SQL Server 放到一个URL 上了,从而保证开发人员和潜在的最终用户都能简单地通过一个URL 来访问SQL Server。 本节我们主要介绍以下三个问题: 如何创建虚拟目录 HTTP 的语法 HTTP 的访问能力 20.4.1 创建虚拟目录
在使用HTTP 访问SQL Server 2000 数据库前必须首先利用IIS 专门为SQL Server 提供的虚拟目录管理器来创建虚拟目录(virtual directory), 同时确保使用的操作系统支持IIS 服务器。创建虚拟目录其主要目的就是在SQL Server 实例与新创建的虚拟目录之间建立新的连接。下面以一个具体的例子来介绍创建虚拟目录要执行哪些步骤。
(1) 在SQL Server Tool 程序单中选择Configure SQL XML Support in IIS 选项。
(2) 打开要创建虚拟目录的服务器图标,然后选择管理站点图标。右击该图标在弹出菜单中选择New ,单击Virtual Directory。
(3) 选中General 标签页,如图20-3 所示。
(4) 该标签页用来给出HTTP 存取数据库数据时所要使用的虚拟目录以及虚拟目录的真实目录的路径。真实目录主要存放通过该虚拟目录要访问的文件,此外模板文件(template files) 和注释匹配模式文件(annotated mapping schema files) 也存储在该目录。在该例中我们在Virtual Directory Name 中输入VirtualRoot; 在Local Path 中输入 E:Inetpubwwwroot VirtualRoot。
(5) 选中Security 标签页,如图20-4 所示。
该标签页用来定义登录的认证方法,共在三种IIS 认证模式。 Always log on as
Windows 和SQL Server 帐号与IIS 认证安全的匿名访问模式相匹配。匿名访问是指任何人都可以访问虚拟目录,但是访问服务器的任何一个客户都必须提供正确的帐号和口令才能够登录成功。其中SQL Server 选项表示当指定SQL Server 登录时,虚拟目录的所有用户都可以使用该SQL Server 登录帐号;Windows 选项表示为所有使用该虚拟目录的用户指定一个Windows 帐号,在缺省情况下使用安装IIS 时的缺省用户IUSR_ServerName。
Use Windows Integrated Authentication
该选项表示使用Windows NT 或Windows 2000 的IIS 认证方法,即合法的 Windows NT 或Windows 2000 用户才具有访问虚拟目录的权限。该访问模式要求 Windows 用户也具有访问SQL Server 的权限。 Use Basic Authentication (Clear Text) to SQL Server account
该选项是指通过SQL Server 登录和口令来进行安全认证。本认证模式与IIS 的基本认证模式不同。我们可以使用匿名认证。 (6) 选中Data Source 标签页,如图20-5 所示。在Data Source 标签页主要完成两个任务,其一是选择一个SQL Server 2000 运行实体,其二选择包含在该实体内且被HTTP 访问的数据库。在本例中选择Pubs 数据库。
(7) 选中Setting 标签页,如图20-6 所示。 Setting 标签页用来确定将使用何种SQL Server 2000 访问类型来通过虚拟目录进行数据访问。应该指出模板(Template) 文件和模式(Schema) 文件可以存储在任何地方。 Allow URL queries
表示直接在URL 中执行SQL 查询,但是考虑到访问的安全性我们建议不使用该选项。 Allow template queries
表示在URL 中执行已存在的模板文件。模板是合法的XML 文档,包括一个或多个SQL 查询。在缺省情况下使用该选项。 Allow XPath
表示直接在URL 中对注释匹配模式进行查询。
(8) 选中Virtual Names 标签页,如图20-7 所示。
该标签页主要用来定义虚拟名称。在URL 中只能使用虚拟名称,基于安全考虑,任何关于执行的对象以及文件的存储位置等信息都被隐藏。 Defined virtual names 表示在访问网络资源时将要用到的虚拟名称。比如通过http://IISServer/VirtualRoot/ temvir/可以访问位于VirtualRoot 虚拟目录下的temvir。 Type 指出要创建的虚拟名称属于哪一个查询类型。 dbobject 表示查询的是数据库对象。 schema 表示对匹配模式执行Xpath 查询。 template 表示模板文件中的SQL 查询。 path 指出模板或模式所在的目录路径,该路径可以是相对路径也可以是绝对路径。如果查询类型为dbobject, 则不需指明路径。该路径可以指文件夹(虚拟名称)的路径也可以指一文件路径。如果指文件夹(虚拟名称)的路径,则在URL 中必须加上文件的名称。例如: http://IISServer/VirtualRoot/ temvir/sample.xml (9)选中Advanced 标签页,如图20-8 所示。
Advanced 标签页主要是用来指定sqlisapi.dll 存放的位置,通过虚拟目录访问 SQL Server 2000 实体时需要使用该文件。如果虚拟目录被创建于远程服务器上,则必须提供存放位置。在缺省情况下sqlisapi.dll 文件被安装于FilesCommon FilesSystemOle DB 目录下。
20.4.2 HTTP 的访问能力
在SQL Server 2000 中,HTTP 的访问能力得到了明显的提高用户,不仅可以在 URL 中直接输入SQL 语句或存储过程,而且能够在URL 中加入模板文件或进行 XPath 查询。在详细介绍这些访问方法之前首先让读者了解HTTP 的语法。
3 在URL 中使用模板
虽然在URL 中直接执行SQL 语句有着简单、快速的优点,但是目前这种方式在大部分互联网环境中都是不合适的。因为开发者不会希望用户书写或是看到SQL 语句,因为这可能泄露访问开发者数据库的内部机制。出于安全原因,开发者显然不会希望这样。因此对于开发人员来说更好的选择就是允许通过URL 来访问指定服务器端的XML 模板。这虽然提供了对SQL Server 的直接访问但是实际已把SQL Select 语句或XPath 查询请求隐藏在了XML 模板中。因此许多中间层代码的使用和数据库交互过程就不必要了。以此方法,可以简便快速地把数据库放置到网络上。这也是SQL Server 为开发人员提供的一种更快捷地跟上市场需要的方法。
申明
非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!
博文欢迎转载,但请给出原文连接。