在使用 HTTP 訪問(wèn) Microsoft? SQL Server? 2000 數(shù)據(jù)庫(kù)之前,必須安裝適當(dāng)?shù)奶摂M目錄。
在運(yùn)行 Microsoft Internet 信息服務(wù) (IIS) 的計(jì)算機(jī)上,使用用于 SQL Server 的 IIS 虛擬目錄管理實(shí)用工具(在"SQL Server 工具"程序組中單擊"在 IIS 中配置 SQL XML 支持")定義并注冊(cè)新的虛擬目錄,即所謂的虛擬根。該實(shí)用工具指示 IIS 在新的虛擬目錄和 Microsoft SQL Server 實(shí)例之間創(chuàng)建關(guān)聯(lián)。有關(guān)該實(shí)用工具用戶(hù)界面的信息,請(qǐng)參見(jiàn) IIS 虛擬目錄管理實(shí)用工具。
必須將 IIS 服務(wù)器和虛擬目錄的名稱(chēng)指定為 URL 的一部分。虛擬目錄(包括登錄、密碼和訪問(wèn)權(quán)限)中的信息用于建立與特定數(shù)據(jù)庫(kù)的連接并執(zhí)行查詢(xún)。
可以指定 URL:
直接訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象,例如表。
在這種情況下,URL 將包括 dbobject 類(lèi)型的虛擬名稱(chēng)。
執(zhí)行模板文件。
模板是由一個(gè)或多個(gè) SQL 語(yǔ)句組成的有效的 XML 文檔。在 URL 中指定模板文件時(shí),將執(zhí)行存儲(chǔ)在模板文件中的 SQL 命令??梢灾苯釉?URL中指定 SQL 查詢(xún),但考慮到安全性,不建議這樣做。
執(zhí)行 XPath 查詢(xún)。
對(duì)指定作為 URL 一部分的帶批注的映射架構(gòu)文件執(zhí)行 XPath 查詢(xún)。
虛擬名若要使模板文件、映射架構(gòu)文件或數(shù)據(jù)庫(kù)對(duì)象(如表或視圖)成為 URL 的一部分,必須創(chuàng)建 template、schema 和 dbobject 類(lèi)型的虛擬名稱(chēng)。將虛擬名稱(chēng)指定為 URL 的一部分,以便執(zhí)行模板文件、對(duì)映射架構(gòu)文件執(zhí)行 XPath 查詢(xún)或直接訪問(wèn)數(shù)據(jù)庫(kù)。
在 URL 中指定的虛擬名稱(chēng)類(lèi)型(template、schema、dbobject)還用于決定在 URL 中指定的文件類(lèi)型(模板文件或映射架構(gòu)文件)。例如,
下面的 URL 使用模板訪問(wèn) SQL Server 數(shù)據(jù)庫(kù):
http://IISServer/nwind/TemplateVirtualName/Template.xml
TemplateVirtualName 是 template 類(lèi)型的虛擬名稱(chēng),用于標(biāo)識(shí)指定的文件 (Template.xml) 是模板文件。
創(chuàng)建 nwind 虛擬目錄
新增信息 - SQL Server 2000 SP3。
下例創(chuàng)建 nwind 虛擬目錄。在大多數(shù)用于說(shuō)明 Microsoft? SQL Server? 2000 的 URL 訪問(wèn)的示例中,都使用 nwind 虛擬目錄。
在創(chuàng)建 nwind 虛擬目錄之前,需要一個(gè)與將要?jiǎng)?chuàng)建的虛擬目錄相關(guān)聯(lián)的物理目錄(例如,C:\Inetpub\Wwwroot\nwind,此處 nwind 是與將要在以下過(guò)程中創(chuàng)建的 nwind 虛擬目錄相關(guān)聯(lián)的物理目錄)。
還需要在與該虛擬目錄相關(guān)聯(lián)的物理目錄下創(chuàng)建兩個(gè)子目錄(例如,C:\Inetpub\Wwwroot\nwind\template 和
C:\Inetpub\Wwwroot\nwind\schema)。這些是與 template 和 schema 類(lèi)型的虛擬名稱(chēng)相關(guān)聯(lián)的目錄,這兩種類(lèi)型的目錄是作為創(chuàng)建 nwind虛擬目錄的一部分而創(chuàng)建的。
創(chuàng)建 nwind 虛擬目錄
在 Microsoft SQL Server 程序組中,單擊"在 IIS 中配置 SQL XML 支持"。
展開(kāi)服務(wù)器,然后單擊想要的 Web 站點(diǎn)。
在"操作"菜單上指向"新建"子菜單,然后單擊"虛擬目錄"命令。新虛擬目錄的屬性頁(yè)將顯示在屏幕上。
在"新的虛擬目錄屬性"對(duì)話(huà)框的"常規(guī)"選項(xiàng)卡上,輸入虛擬目錄的名稱(chēng)。對(duì)于本例,鍵入 nwind 和物理目錄路徑(例如C:\Inetpub\Wwwroot\nwind,假設(shè)在 C:\Inetpub\Wwwroot 目錄中已創(chuàng)建了 nwind 子目錄)。或者可以使用"瀏覽"按鈕選擇目錄。
在"安全"選項(xiàng)卡上,選擇"SQL Server"和"使用 Windows 集成身份驗(yàn)證"。
在"數(shù)據(jù)源"選項(xiàng)卡上,在"SQL Server"框中輸入服務(wù)器的名稱(chēng),例如 (local);如果在指定的計(jì)算機(jī)上安裝了多個(gè)實(shí)例,則輸入 SQL Server2000 實(shí)例的名稱(chēng)(可選)。在"數(shù)據(jù)庫(kù)"框中,輸入 Northwind 作為默認(rèn)數(shù)據(jù)庫(kù)的名稱(chēng)。
在"設(shè)置"選項(xiàng)卡上,選擇"允許 URL 查詢(xún)"、"允許模板查詢(xún)"、"允許 XPath"和"允許 POST"選項(xiàng)。
在"虛擬名稱(chēng)"選項(xiàng)卡上,單擊"新建"按鈕以創(chuàng)建模板類(lèi)型的虛擬名稱(chēng)。
在"虛擬名稱(chēng)配置"對(duì)話(huà)框中:
在"虛擬名稱(chēng)"框內(nèi)輸入
template(可以是用戶(hù)指定的任意名稱(chēng))。在"類(lèi)型"列表中,選擇"模板"。輸入路徑(例如,C:\Inetpub\Wwwroot\nwind\template,假設(shè)與虛擬目錄相關(guān)聯(lián)的物理目錄下有一個(gè)子目錄 template,但并不檢查該目錄是否存在)。單擊"保存"按鈕保存虛擬名稱(chēng)。
在"虛擬名稱(chēng)"選項(xiàng)卡上,單擊"新建"按鈕以創(chuàng)建架構(gòu)類(lèi)型的虛擬名稱(chēng)。
在"虛擬名稱(chēng)"框內(nèi)輸入schema(可以是用戶(hù)指定的任意名稱(chēng))。在"類(lèi)型"列表中,選擇"架構(gòu)"。輸入路徑(例如,C:\Inetpub\Wwwroot\nwind\schema,假設(shè)與虛擬目錄相關(guān)聯(lián)的物理目錄下有一個(gè)子目錄 schema)。單擊"保存"按鈕保存虛擬名稱(chēng)。
在"虛擬名稱(chēng)"選項(xiàng)卡上,單擊"新建"按鈕以創(chuàng)建模板和架構(gòu)類(lèi)型的虛擬名稱(chēng)。
在"虛擬名稱(chēng)"框內(nèi)輸入 dbobject(可以是用戶(hù)指定的任意名稱(chēng))。在"類(lèi)型"列表中,選擇 dbobject。單擊"保存"按鈕保存虛擬名稱(chēng)。
單擊"確定"按鈕保存設(shè)置。
這就創(chuàng)建了虛擬目錄 nwind。默認(rèn)情況下,使用該虛擬目錄對(duì) Northwind 數(shù)據(jù)庫(kù)執(zhí)行指定的查詢(xún)。
若要測(cè)試虛擬目錄,請(qǐng)?jiān)跒g覽器中鍵入:/nwind?sql=SELECT">http:///nwind?sql=SELECT * FROM Employees FOR XML AUTO&root=root 并按 ENTER 鍵。
使用 HTTP 訪問(wèn) SQL Server
新增信息 - SQL Server 2000 SP3。
可以使用 HTTP 訪問(wèn) Microsoft? SQL Server? 2000。有關(guān) SQL ISAPI 擴(kuò)展所支持的 URL 語(yǔ)法的更多信息,請(qǐng)參見(jiàn) URL Access。在可以使用HTTP 指定查詢(xún)前,必須先用用于 SQL Server 的 IIS 虛擬目錄管理實(shí)用工具創(chuàng)建一個(gè)虛擬根。有關(guān)更多信息,請(qǐng)參見(jiàn)創(chuàng)建 nwind 虛擬目錄。
SQL Server 的 HTTP 訪問(wèn)能力使您得以:
直接在 URL 中指定 SQL 查詢(xún),例如:
http://IISServer/nwind?sql=SELECT+*+FROM+Customers+FOR+XML+AUTO&root=root
指定 FOR XML 子句以 XML 文檔而不是標(biāo)準(zhǔn)行集的形式返回結(jié)果。根參數(shù)可標(biāo)識(shí)單一的頂層元素。
直接在 URL 中指定模板。
模板是包含一個(gè)或多個(gè) SQL 語(yǔ)句的有效的 XML 文檔。模板使您得以將數(shù)據(jù)放在一起以形成有效的 XML 文檔,但直接在 URL 中指定查詢(xún)時(shí)不一定是這樣。例如:
SELECT+*+FROM+Customers+FOR+XM'>http://IISServer/nwind?template=SELECT+*+FROM+Customers+FOR+XM
L+AUTO
在 URL 中指定模板文件。
在 URL 中寫(xiě)入長(zhǎng) SQL 查詢(xún)會(huì)很麻煩。此外,瀏覽器對(duì)在 URL 中可以輸入的文本量可能有限制。若要避免這些問(wèn)題,可以編寫(xiě)模板并將其存儲(chǔ)在文件中。模板是包含一個(gè)或多個(gè) SQL 語(yǔ)句和 XPath 查詢(xún)的有效的 XML 文檔??梢栽?URL 中直接指定模板文件,例如:
http://IISServer/nwind/TemplateVirtualName/templatefile.xml
在 URL 中,TemplateVirtualName 是使用用于 SQL Server 的 IIS 虛擬目錄管理實(shí)用工具創(chuàng)建的 template 類(lèi)型的虛擬名稱(chēng)。
模板文件還刪除來(lái)自用戶(hù)的數(shù)據(jù)庫(kù)查詢(xún)的詳細(xì)信息以增強(qiáng)安全性。通過(guò)將模板文件存儲(chǔ)在注冊(cè)數(shù)據(jù)庫(kù)時(shí)所在的虛擬根目錄(或其子目錄)中,刪除虛擬根上的 URL 查詢(xún)處理服務(wù)并只允許 SQL Server XML ISAPI 處理文件及返回結(jié)果集,從而加強(qiáng)了安全性。
指定在帶批注的 XML 數(shù)據(jù)簡(jiǎn)化 (XDR) 架構(gòu)(也稱(chēng)為映射架構(gòu))上執(zhí)行的 XPath 查詢(xún)。
從概念上講,對(duì)映射架構(gòu)編寫(xiě) XPath 查詢(xún)與使用 CREATE VIEW 語(yǔ)句創(chuàng)建視圖并對(duì)視圖編寫(xiě) SQL 查詢(xún)相似,例如:
http://IISServer/nwind/SchemaVirtualName/schemafile.xml/Customer[@CustomerID="ALFKI"]
在運(yùn)行 Microsoft Internet 信息服務(wù) (IIS) 的計(jì)算機(jī)上,使用用于 SQL Server 的 IIS 虛擬目錄管理實(shí)用工具(在"SQL Server 工具"程序組中單擊"在 IIS 中配置 SQL XML 支持")定義并注冊(cè)新的虛擬目錄,即所謂的虛擬根。該實(shí)用工具指示 IIS 在新的虛擬目錄和 Microsoft SQL Server 實(shí)例之間創(chuàng)建關(guān)聯(lián)。有關(guān)該實(shí)用工具用戶(hù)界面的信息,請(qǐng)參見(jiàn) IIS 虛擬目錄管理實(shí)用工具。
必須將 IIS 服務(wù)器和虛擬目錄的名稱(chēng)指定為 URL 的一部分。虛擬目錄(包括登錄、密碼和訪問(wèn)權(quán)限)中的信息用于建立與特定數(shù)據(jù)庫(kù)的連接并執(zhí)行查詢(xún)。
可以指定 URL:
直接訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象,例如表。
在這種情況下,URL 將包括 dbobject 類(lèi)型的虛擬名稱(chēng)。
執(zhí)行模板文件。
模板是由一個(gè)或多個(gè) SQL 語(yǔ)句組成的有效的 XML 文檔。在 URL 中指定模板文件時(shí),將執(zhí)行存儲(chǔ)在模板文件中的 SQL 命令??梢灾苯釉?URL中指定 SQL 查詢(xún),但考慮到安全性,不建議這樣做。
執(zhí)行 XPath 查詢(xún)。
對(duì)指定作為 URL 一部分的帶批注的映射架構(gòu)文件執(zhí)行 XPath 查詢(xún)。
虛擬名若要使模板文件、映射架構(gòu)文件或數(shù)據(jù)庫(kù)對(duì)象(如表或視圖)成為 URL 的一部分,必須創(chuàng)建 template、schema 和 dbobject 類(lèi)型的虛擬名稱(chēng)。將虛擬名稱(chēng)指定為 URL 的一部分,以便執(zhí)行模板文件、對(duì)映射架構(gòu)文件執(zhí)行 XPath 查詢(xún)或直接訪問(wèn)數(shù)據(jù)庫(kù)。
在 URL 中指定的虛擬名稱(chēng)類(lèi)型(template、schema、dbobject)還用于決定在 URL 中指定的文件類(lèi)型(模板文件或映射架構(gòu)文件)。例如,
下面的 URL 使用模板訪問(wèn) SQL Server 數(shù)據(jù)庫(kù):
http://IISServer/nwind/TemplateVirtualName/Template.xml
TemplateVirtualName 是 template 類(lèi)型的虛擬名稱(chēng),用于標(biāo)識(shí)指定的文件 (Template.xml) 是模板文件。
創(chuàng)建 nwind 虛擬目錄
新增信息 - SQL Server 2000 SP3。
下例創(chuàng)建 nwind 虛擬目錄。在大多數(shù)用于說(shuō)明 Microsoft? SQL Server? 2000 的 URL 訪問(wèn)的示例中,都使用 nwind 虛擬目錄。
在創(chuàng)建 nwind 虛擬目錄之前,需要一個(gè)與將要?jiǎng)?chuàng)建的虛擬目錄相關(guān)聯(lián)的物理目錄(例如,C:\Inetpub\Wwwroot\nwind,此處 nwind 是與將要在以下過(guò)程中創(chuàng)建的 nwind 虛擬目錄相關(guān)聯(lián)的物理目錄)。
還需要在與該虛擬目錄相關(guān)聯(lián)的物理目錄下創(chuàng)建兩個(gè)子目錄(例如,C:\Inetpub\Wwwroot\nwind\template 和
C:\Inetpub\Wwwroot\nwind\schema)。這些是與 template 和 schema 類(lèi)型的虛擬名稱(chēng)相關(guān)聯(lián)的目錄,這兩種類(lèi)型的目錄是作為創(chuàng)建 nwind虛擬目錄的一部分而創(chuàng)建的。
創(chuàng)建 nwind 虛擬目錄
在 Microsoft SQL Server 程序組中,單擊"在 IIS 中配置 SQL XML 支持"。
展開(kāi)服務(wù)器,然后單擊想要的 Web 站點(diǎn)。
在"操作"菜單上指向"新建"子菜單,然后單擊"虛擬目錄"命令。新虛擬目錄的屬性頁(yè)將顯示在屏幕上。
在"新的虛擬目錄屬性"對(duì)話(huà)框的"常規(guī)"選項(xiàng)卡上,輸入虛擬目錄的名稱(chēng)。對(duì)于本例,鍵入 nwind 和物理目錄路徑(例如C:\Inetpub\Wwwroot\nwind,假設(shè)在 C:\Inetpub\Wwwroot 目錄中已創(chuàng)建了 nwind 子目錄)。或者可以使用"瀏覽"按鈕選擇目錄。
在"安全"選項(xiàng)卡上,選擇"SQL Server"和"使用 Windows 集成身份驗(yàn)證"。
在"數(shù)據(jù)源"選項(xiàng)卡上,在"SQL Server"框中輸入服務(wù)器的名稱(chēng),例如 (local);如果在指定的計(jì)算機(jī)上安裝了多個(gè)實(shí)例,則輸入 SQL Server2000 實(shí)例的名稱(chēng)(可選)。在"數(shù)據(jù)庫(kù)"框中,輸入 Northwind 作為默認(rèn)數(shù)據(jù)庫(kù)的名稱(chēng)。
在"設(shè)置"選項(xiàng)卡上,選擇"允許 URL 查詢(xún)"、"允許模板查詢(xún)"、"允許 XPath"和"允許 POST"選項(xiàng)。
在"虛擬名稱(chēng)"選項(xiàng)卡上,單擊"新建"按鈕以創(chuàng)建模板類(lèi)型的虛擬名稱(chēng)。
在"虛擬名稱(chēng)配置"對(duì)話(huà)框中:
在"虛擬名稱(chēng)"框內(nèi)輸入
template(可以是用戶(hù)指定的任意名稱(chēng))。在"類(lèi)型"列表中,選擇"模板"。輸入路徑(例如,C:\Inetpub\Wwwroot\nwind\template,假設(shè)與虛擬目錄相關(guān)聯(lián)的物理目錄下有一個(gè)子目錄 template,但并不檢查該目錄是否存在)。單擊"保存"按鈕保存虛擬名稱(chēng)。
在"虛擬名稱(chēng)"選項(xiàng)卡上,單擊"新建"按鈕以創(chuàng)建架構(gòu)類(lèi)型的虛擬名稱(chēng)。
在"虛擬名稱(chēng)"框內(nèi)輸入schema(可以是用戶(hù)指定的任意名稱(chēng))。在"類(lèi)型"列表中,選擇"架構(gòu)"。輸入路徑(例如,C:\Inetpub\Wwwroot\nwind\schema,假設(shè)與虛擬目錄相關(guān)聯(lián)的物理目錄下有一個(gè)子目錄 schema)。單擊"保存"按鈕保存虛擬名稱(chēng)。
在"虛擬名稱(chēng)"選項(xiàng)卡上,單擊"新建"按鈕以創(chuàng)建模板和架構(gòu)類(lèi)型的虛擬名稱(chēng)。
在"虛擬名稱(chēng)"框內(nèi)輸入 dbobject(可以是用戶(hù)指定的任意名稱(chēng))。在"類(lèi)型"列表中,選擇 dbobject。單擊"保存"按鈕保存虛擬名稱(chēng)。
單擊"確定"按鈕保存設(shè)置。
這就創(chuàng)建了虛擬目錄 nwind。默認(rèn)情況下,使用該虛擬目錄對(duì) Northwind 數(shù)據(jù)庫(kù)執(zhí)行指定的查詢(xún)。
若要測(cè)試虛擬目錄,請(qǐng)?jiān)跒g覽器中鍵入:/nwind?sql=SELECT">http://
使用 HTTP 訪問(wèn) SQL Server
新增信息 - SQL Server 2000 SP3。
可以使用 HTTP 訪問(wèn) Microsoft? SQL Server? 2000。有關(guān) SQL ISAPI 擴(kuò)展所支持的 URL 語(yǔ)法的更多信息,請(qǐng)參見(jiàn) URL Access。在可以使用HTTP 指定查詢(xún)前,必須先用用于 SQL Server 的 IIS 虛擬目錄管理實(shí)用工具創(chuàng)建一個(gè)虛擬根。有關(guān)更多信息,請(qǐng)參見(jiàn)創(chuàng)建 nwind 虛擬目錄。
SQL Server 的 HTTP 訪問(wèn)能力使您得以:
直接在 URL 中指定 SQL 查詢(xún),例如:
http://IISServer/nwind?sql=SELECT+*+FROM+Customers+FOR+XML+AUTO&root=root
指定 FOR XML 子句以 XML 文檔而不是標(biāo)準(zhǔn)行集的形式返回結(jié)果。根參數(shù)可標(biāo)識(shí)單一的頂層元素。
直接在 URL 中指定模板。
模板是包含一個(gè)或多個(gè) SQL 語(yǔ)句的有效的 XML 文檔。模板使您得以將數(shù)據(jù)放在一起以形成有效的 XML 文檔,但直接在 URL 中指定查詢(xún)時(shí)不一定是這樣。例如:
SELECT+*+FROM+Customers+FOR+XM'>http://IISServer/nwind?template=
L+AUTO
在 URL 中指定模板文件。
在 URL 中寫(xiě)入長(zhǎng) SQL 查詢(xún)會(huì)很麻煩。此外,瀏覽器對(duì)在 URL 中可以輸入的文本量可能有限制。若要避免這些問(wèn)題,可以編寫(xiě)模板并將其存儲(chǔ)在文件中。模板是包含一個(gè)或多個(gè) SQL 語(yǔ)句和 XPath 查詢(xún)的有效的 XML 文檔??梢栽?URL 中直接指定模板文件,例如:
http://IISServer/nwind/TemplateVirtualName/templatefile.xml
在 URL 中,TemplateVirtualName 是使用用于 SQL Server 的 IIS 虛擬目錄管理實(shí)用工具創(chuàng)建的 template 類(lèi)型的虛擬名稱(chēng)。
模板文件還刪除來(lái)自用戶(hù)的數(shù)據(jù)庫(kù)查詢(xún)的詳細(xì)信息以增強(qiáng)安全性。通過(guò)將模板文件存儲(chǔ)在注冊(cè)數(shù)據(jù)庫(kù)時(shí)所在的虛擬根目錄(或其子目錄)中,刪除虛擬根上的 URL 查詢(xún)處理服務(wù)并只允許 SQL Server XML ISAPI 處理文件及返回結(jié)果集,從而加強(qiáng)了安全性。
指定在帶批注的 XML 數(shù)據(jù)簡(jiǎn)化 (XDR) 架構(gòu)(也稱(chēng)為映射架構(gòu))上執(zhí)行的 XPath 查詢(xún)。
從概念上講,對(duì)映射架構(gòu)編寫(xiě) XPath 查詢(xún)與使用 CREATE VIEW 語(yǔ)句創(chuàng)建視圖并對(duì)視圖編寫(xiě) SQL 查詢(xún)相似,例如:
http://IISServer/nwind/SchemaVirtualName/schemafile.xml/Customer[@CustomerID="ALFKI"]