使用用于SQL Server的IIS虚拟目录管理实用工具
|
在使用 HTTP 访问 Microsoft? SQL Server? 2000 数据库之前,必须安装适当的虚拟目录。 在运行 Microsoft Internet 信息服务 (IIS) 的计算机上,使用用于 SQL Server 的 IIS 虚拟目录管理实用工具(在"SQL Server 工具"程序组中单击"在 IIS 中配置 SQL XML 支持")定义并注册新的虚拟目录,即所谓的虚拟根。该实用工具指示 IIS 在新的虚拟目录和 Microsoft SQL Server 实例之间创建关联。有关该实用工具用户界面的信息,请参见 IIS 虚拟目录管理实用工具。 必须将 IIS 服务器和虚拟目录的名称指定为 URL 的一部分。虚拟目录(包括登录、密码和访问权限)中的信息用于建立与特定数据库的连接并执行查询。 可以指定 URL: 直接访问数据库对象,例如表。 执行模板文件。 执行 XPath 查询。 虚拟名若要使模板文件、映射架构文件或数据库对象(如表或视图)成为 URL 的一部分,必须创建 template、schema 和 dbobject 类型的虚拟名称。将虚拟名称指定为 URL 的一部分,以便执行模板文件、对映射架构文件执行 XPath 查询或直接访问数据库。 在 URL 中指定的虚拟名称类型(template、schema、dbobject)还用于决定在 URL 中指定的文件类型(模板文件或映射架构文件)。例如, 下面的 URL 使用模板访问 SQL Server 数据库: http://IISServer/nwind/TemplateVirtualName/Template.xml TemplateVirtualName 是 template 类型的虚拟名称,用于标识指定的文件 (Template.xml) 是模板文件。 创建 nwind 虚拟目录 新增信息 - SQL Server 2000 SP3。 下例创建 nwind 虚拟目录。在大多数用于说明 Microsoft? SQL Server? 2000 的 URL 访问的示例中,都使用 nwind 虚拟目录。 在创建 nwind 虚拟目录之前,需要一个与将要创建的虚拟目录相关联的物理目录(例如,C:InetpubWwwroot wind,此处 nwind 是与将要在以下过程中创建的 nwind 虚拟目录相关联的物理目录)。 还需要在与该虚拟目录相关联的物理目录下创建两个子目录(例如,C:InetpubWwwroot wind emplate 和 C:InetpubWwwroot windschema)。这些是与 template 和 schema 类型的虚拟名称相关联的目录,这两种类型的目录是作为创建 nwind虚拟目录的一部分而创建的。 创建 nwind 虚拟目录 在 Microsoft SQL Server 程序组中,单击"在 IIS 中配置 SQL XML 支持"。 展开服务器,然后单击想要的 Web 站点。 在"操作"菜单上指向"新建"子菜单,然后单击"虚拟目录"命令。新虚拟目录的属性页将显示在屏幕上。
在"虚拟名称"框内输入 template(可以是用户指定的任意名称)。在"类型"列表中,选择"模板"。输入路径(例如,C:InetpubWwwroot wind emplate,假设与虚拟目录相关联的物理目录下有一个子目录 template,但并不检查该目录是否存在)。单击"保存"按钮保存虚拟名称。 在"虚拟名称"选项卡上,单击"新建"按钮以创建架构类型的虚拟名称。
单击"确定"按钮保存设置。 这就创建了虚拟目录 nwind。默认情况下,使用该虚拟目录对 Northwind 数据库执行指定的查询。 若要测试虚拟目录,请在浏览器中键入:/nwind?sql=SELECT">http://<IISServer>/nwind?sql=SELECT * FROM Employees FOR XML AUTO&root=root 并按 ENTER 键。 使用 HTTP 访问 SQL Server 新增信息 - SQL Server 2000 SP3。 可以使用 HTTP 访问 Microsoft? SQL Server? 2000。有关 SQL ISAPI 扩展所支持的 URL 语法的更多信息,请参见 URL Access。在可以使用HTTP 指定查询前,必须先用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建一个虚拟根。有关更多信息,请参见创建 nwind 虚拟目录。 SQL Server 的 HTTP 访问能力使您得以: 直接在 URL 中指定 SQL 查询,例如: 指定 FOR XML 子句以 XML 文档而不是标准行集的形式返回结果。根参数可标识单一的顶层元素。 直接在 URL 中指定模板。 SELECT+*+FROM+Customers+FOR+XM">http://IISServer/nwind?template=<ROOT+xmlns:sql="urn:schemas-microsoft-com:xml-sql"><sql:query>SELECT+*+FROM+Customers+FOR+XM L+AUTO</sql:query></ROOT> 在 URL 中指定模板文件。 http://IISServer/nwind/TemplateVirtualName/templatefile.xml 在 URL 中,TemplateVirtualName 是使用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建的 template 类型的虚拟名称。 模板文件还删除来自用户的数据库查询的详细信息以增强安全性。通过将模板文件存储在注册数据库时所在的虚拟根目录(或其子目录)中,删除虚拟根上的 URL 查询处理服务并只允许 SQL Server XML ISAPI 处理文件及返回结果集,从而加强了安全性。 指定在带批注的 XML 数据简化 (XDR) 架构(也称为映射架构)上执行的 XPath 查询。 http://IISServer/nwind/SchemaVirtualName/schemafile.xml/Customer[@CustomerID="ALFKI"] 在这个 URL 中: SchemaVirtualName 是使用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建的 schema 类型的虚拟名称。
http://IISServer/nwind/dbobjectVirtualName/XpathQuery 在这个 URL 中,dbobjectVirtualName 是使用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建的 dbobject 类型的虚拟名称。
XML 文档和文档片段当用 root 参数执行模板或查询时,结果是有单个顶层元素的完整 XML 文档。例如,下列 URL 执行模板: http://IISServer/VirtualRoot/TemplateVirutalName/MyTemplate.xml 下面是一个示例模板文件 (MyTemplate.xml): <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> 模板中的 <ROOT> 标记为结果 XML 文档提供了单个的顶层元素。 可以直接在 URL 中指定查询。在此例中,root 参数指定返回文档中的顶层元素: http://IISServer/VirtualRoot?sql=SELECT * FROM Customers FOR XML AUTO&root=root 如果在写上述查询时不使用 root 参数,将返回一个 XML 文档片段(即缺少单个顶层元素的 XML 文档)。 该片段没有标题信息。例如,下列URL 将返回文档片段: http://IISServer/VirtualRoot?sql=SELECT * FROM Customers FOR XML AUTO 当请求一个 XML 文档时,将返回用以标识文档编码类型的字节顺序标记。字节顺序标记是用以标识 XML 文档编码类型的标准字节顺序。XML分析器使用该字节顺序标记确定文档编码类型(如 Unicode)。例如,字节顺序标记"oxff, 0xfe"将文档标识为 Unicode。默认情况下,分析器假设 UTF-8 为文档编码类型。 当请求 XML 片段时将不返回字节顺序标记,因为字节顺序标记属于 XML 文档标题,而 XML 片段中没有标题。
SQLXML 3.0 Service Pack 1。此 Service Pack 附带的文档提供了开发应用程序时应考虑的安全事项的信息。 源代码网供稿. |
