保留 HTTP 命名空間
保留 HTTP 命名空間供 SQL Server 2005 執行個體使用,可透過使用隱含保留 (例如,使用 CREATE ENDPOINT),或透過使用 sp_reserve_http_namespace 預存程序進行明確保留。
URL 命名空間是基於下列理由而保留:
- 如果應用程式是以非管理員帳戶執行,若管理員未保留命名空間,應用程式將無法在執行階段繫結至命名空間。這是核心模式 HTTP 驅動程式的需求 (Http.sys)。
此規則的唯一例外為應用程式在本機系統帳戶下執行。在本機系統帳戶下執行的應用程式可以繫結至任何可用的命名空間。即使您是在本機系統帳戶下執行,我們仍建議您基於下列理由而保留命名空間。 - 保留命名空間可確保其他的應用程式無法繫結它;因此,應用程式對命名空間具有唯一的擁有權。
例如,如果 SQL Server 2005 執行個體是在本機系統帳戶下執行,就不需要保留命名空間,但我們仍建議命名空間應避免在 URL 上的應用程式衝突。
保留命名空間為階層式。例如,如果命名空間 http://adventure-works.com:80/ 已保留,也會保留所有的子命名空間,例如 http://adventure-works.com:80/sqlapp1 與 **http://adventure-works.com:80/sqlapp2/dir1**。
附註: |
---|
若要使用核心模式 HTTP 驅動程式 (Http.sys) 來保留 HTTP 命名空間,將需要已安裝 SQL Server 2005 執行個體的本機電腦之 Windows 管理員權限。 |
建立明確保留
若要建立明確保留,管理員若希望使用者不需電腦的高權限,就能執行結束點「資料定義語言」(DDL) 陳述式,可以使用 sp_reserve_http_namespace 預存程序保留 URL 命名空間。
例如,您可以使用 Windows 驗證 (具有管理員權限的登入) 來連接到 SQL Server 2005 執行個體,並執行下列程式碼:
sp_reserve_http_namespace N'http://MyServer:80/sql'
GO
預存程序可明確地保留指定的命名空間,其中 MyServer
是伺服器名稱,而 80
則是通訊埠編號。此程序會保留指定的 URL 命名空間,所用的方法是在該命名空間中的後續 DDL 作業不需該電腦的管理員權限。沒有任何電腦管理員權限的使用者,可以執行結束點 DDL 陳述式。
例如,使用者可以執行下列 CREATE ENDPOINT
陳述式:
CREATE ENDPOINT sql_endpoint
STATE = STARTED
AS HTTP(
PATH = '/sql/AdvWorks',
AUTHENTICATION = (INTEGRATED ),
PORTS = ( CLEAR ),
SITE = 'MyServer'
)
FOR SOAP (
...
)
GO
結束點陳述式只會在 HTTP.SYS 的保留命名空間中註冊 /sql/AdvWorks
。用戶端應用程式接著就可以傳送 SOAP 要求,例如向伺服器要求對結束點的 WSDL 回應:
http://MyServer/sql/AdvWorks?wsdl
在 sp_reserve_http_namespace 預存程序中指定的命名空間必須為下列形式:
<scheme>://<hostpart>[:<port>]/<RelativeURI>
scheme
可為 http 或 https。
hostpart
可為特定的主機名稱或下列萬用字元:加號 (+) 或星號 (*)。加號 (+) 意謂著保留作業會針對指定的 <配置> 與 <通訊埠> 套用至該電腦的所有可能主機。
星號 (*) 意謂著保留作業會針對未明確保留的 <配置> 與 <通訊埠> 套用至該電腦的所有可能主機,例如執行其他的 sp_reserve_http_namespace 作業、使用中結束點或其他的應用程式。
識別結束點的命名空間
您可以根據 CREATE ENDPOINT 陳述式中的參數,識別結束點的正確命名空間。
CREATE ENDPOINT 陳述式中 PORTS 參數的值決定命名空間的配置,如下列表格所示:
結束點值 | <scheme> 值 |
---|---|
CLEAR |
http |
SSL |
https |
n |
http |
CLEAR_PORT 或 SSL_PORT 參數的值設定命名空間的 <port> 值
PATH 參數的值設定命名空間的 <RelativeURI>。
SITE 參數的值設定命名空間的 <hostpart>。
例如,下列陳述式會建立命名空間為 http://testhost:80/sqlurl/myapp 的結束點。
CREATE ENDPOINT ext_endpoint
STATE = STARTED
AS HTTP (
PATH = '/squl/myapp'
, PORTS = CLEAR
, SITE = testhost
, CLEAR_PORT = 80
)
下列陳述式會建立命名空間為 https://*:443/sqlurl/myapp 的結束點:
CREATE ENDPOINT ext_endpoint
STATE = STARTED
AS HTTP (
PATH = ?squl/myapp?, PORTS = SSL
, SITE = *
, SSL_PORT = 443
)
範例
下列是另一個範例,示範管理員針對 SSL 連接保留 HTTP.SYS 中的命名空間。因此,使用者可以建立 PORT 設定為 SSL 的結束點。
sp_reserve_http_namespace N'https://MyServer:443/sql'
請參閱
參考
使用 Http.sys 保留 URL 命名空間
刪除 HTTP 命名空間的保留