CREATE ENDPOINT (Transact-SQL)
建立端點及定義其屬性,包括用戶端應用程式可用的方法。 如需相關的權限資訊,請參閱<GRANT 端點權限 (Transact-SQL)>。
在邏輯上,CREATE ENDPOINT 的語法可分為兩個部分:
第一部分從 AS 開始,並在 FOR 子句之前結束。
在這個部分,您提供傳輸通訊協定特定資訊做為 TCP 或 HTTP,並設定端點的接聽通訊埠編號,以及端點驗證的方法及 (或) 您要限制其存取端點的 IP 位址 (如果有的話) 清單。
第二個部分從 FOR 子句開始。
在這個部分,您定義端點上支援的裝載。 裝載可以是下列數個支援的類型之一:SOAP、Transact-SQL、Service Broker 和資料庫鏡像。 在這個部分,您還會併入特定語言資訊。 例如,使用 HTTP SOAP 時,您要識別您想在端點中公開做為 Web 方法的程序。 針對每個 Web 方法,您必須識別相對應的 SQL Server 預存程序或它所對應的使用者定義函數。 如此一來,用戶端應用程式就可以傳送 HTTP SOAP 要求,來呼叫端點中的這些方法。 您也可以提供其他 SOAP 組態資訊,如下所示:
是否允許特定查詢要求
是否傳回結果集的 XSD 結構描述
執行所要求的方法時所在的資料庫內容
端點的命名空間
如何處理結果中不適用於 XML 的字元
[!附註]
原生 XML Web 服務 (SOAP/HTTP 端點) 已被取代。 如需詳細資訊,請參閱<原生 XML Web 服務:在 SQL Server 2008 中已被取代>。
語法
CREATE ENDPOINT endPointName [ AUTHORIZATION login ]
[ STATE = { STARTED | STOPPED | DISABLED } ]
AS { HTTP | TCP } (
<protocol_specific_arguments>
)
FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (
<language_specific_arguments>
)<AS HTTP_protocol_specific_arguments> ::=
AS HTTP (
PATH = 'url', AUTHENTICATION = ( { BASIC | DIGEST | INTEGRATED | NTLM | KERBEROS } [ ,...n ] ), PORTS =( { CLEAR | SSL} [ ,... n ] )
[ SITE = {'*' | '+' | 'webSite' },]
[ [ , ] CLEAR_PORT =clearPort ]
[ [ , ] SSL_PORT =SSLPort ]
[ [ , ] AUTH_REALM = { 'realm' | NONE } ]
[ [ , ] DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
[ [ , ] COMPRESSION = { ENABLED | DISABLED } ]
)<AS TCP_protocol_specific_arguments> ::=
AS TCP (
LISTENER_PORT =listenerPort
[ [ , ] LISTENER_IP = ALL | (4-part-ip ) | ( "ip_address_v6" ) ]
)<FOR SOAP_language_specific_arguments> ::=
FOR SOAP(
[ { WEBMETHOD [ 'namespace'.] 'method_alias'( NAME ='database.schema.name'
[ [ , ] SCHEMA = { NONE | STANDARD | DEFAULT } ]
[ [ , ] FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
)
} [ ,...n ] ]
[ [ , ] BATCHES = { ENABLED | DISABLED } ]
[ [ , ] WSDL = { NONE | DEFAULT | 'sp_name' } ]
[ [ , ] SESSIONS = { ENABLED | DISABLED } ]
[ [ , ] LOGIN_TYPE = { MIXED | WINDOWS } ]
[ [ , ] SESSION_TIMEOUT =timeoutInterval | NEVER ]
[ [ , ] DATABASE = { 'database_name' | DEFAULT }
[ [ , ] NAMESPACE = { 'namespace' | DEFAULT } ]
[ [ , ] SCHEMA = { NONE | STANDARD } ]
[ [ , ] CHARACTER_SET = { SQL | XML } ]
[ [ , ] HEADER_LIMIT = int ]
)
<FOR SERVICE_BROKER_language_specific_arguments> ::=
FOR SERVICE_BROKER (
[ AUTHENTICATION = {
WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
| CERTIFICATE certificate_name
| WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
| CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
} ]
[ [ , ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }
[ ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ] }
]
[ [ , ] MESSAGE_FORWARDING = { ENABLED | DISABLED } ]
[ [ , ] MESSAGE_FORWARD_SIZE =forward_size ]
)
<FOR DATABASE_MIRRORING_language_specific_arguments> ::=
FOR DATABASE_MIRRORING (
[ AUTHENTICATION = {
WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
| CERTIFICATE certificate_name
| WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
| CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
[ [ [ , ] ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }
[ ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ] }
]
[ , ] ROLE = { WITNESS | PARTNER | ALL }
)
引數
endPointName
這是您要建立之端點的指派名稱。 更新或刪除端點時可使用該名稱。AUTHORIZATION login
指定被指派新建立之端點物件擁有權的有效 SQL Server 或 Windows 登入。 如果未指定 AUTHORIZATION,依預設,呼叫者會成為新建立之物件的擁有者。若要指定 AUTHORIZATION 來指派擁有權,呼叫者必須具備指定 login 的 IMPERSONATE 權限。
若要重新指派擁有權,請參閱<ALTER ENDPOINT (Transact-SQL)>。
STATE = { STARTED | STOPPED | DISABLED }
這是建立端點時的端點狀態。 如果在建立端點時沒有指定狀態,STOPPED 是預設值。STARTED
端點已啟動,並主動接聽連接。DISABLED
端點已停用。 在這種狀態下,伺服器會接聽通訊埠要求,但會將錯誤傳回用戶端。STOPPED
端點已停止。 在這種狀態下,伺服器不接聽端點埠或不回應任何嘗試使用該端點的要求。
若要變更狀態,請使用 ALTER ENDPOINT (Transact-SQL)。
AS { HTTP | TCP }
指定要使用的傳輸通訊協定。FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
指定裝載類型。目前沒有任何 Transact-SQL 語言特定的引數要傳入 <language_specific_arguments> 參數。
原生 XML Web 服務 (SOAP/HTTP 端點) 已被取代。 如需詳細資訊,請參閱<原生 XML Web 服務:在 SQL Server 2008 中已被取代>。
HTTP 通訊協定選項
下列項目只適用於 HTTP 通訊協定選項。
PATH = 'url'
指定 URL 路徑,來識別 SITE 引數中指定之主機電腦上的端點位置。 PATH 是 URL 命名空間的邏輯資料分割,接聽程式會利用這個 URL 命名空間來適當路由要求。 PATH 必須 URL 的一部分,用戶端會利用這個 URL,將 HTTP SOAP 要求傳送給 SQL Server 的執行個體。 例如:在 URL https://ServerName/Sql 中,ServerName 是 SITE 指定的主機電腦,/Sql 則是 PATH 指定的 URL。AUTHENTICATION = ( { BASIC | DIGEST | NTLM | KERBEROS | INTEGRATED } [ ,...n ] )
指定用來驗證登入 SQL Server 之執行個體的使用者之驗證類型。 您可以指定 BASIC、DIGEST、NTLM、KERBEROS 或 INTEGRATED,或指定這些值的組合 (需以逗號 (,) 分隔)。 如需詳細資訊,請參閱<端點驗證類型>。PORTS**=(** { CLEAR | SSL} [ ,... n ] )
指定一個或多個關聯於端點的接聽通訊埠類型。 CLEAR 和 SSL 可以同時指定。 如果只指定 CLEAR,內送要求必須使用 HTTP。 如果指定 SSL,內送要求必須是安全 HTTP (https://) 要求。[ SITE = { ' * ' | ' + ' | 'webSite' } ]
指定主機電腦的名稱。 如果省略 SITE,星號是預設值。 如果執行了 sp_reserve_http_namespace,則將 <hostpart> 傳遞至 SITE 關鍵字。 例如,如果執行了 sp_reserve_http_namespace N'http://MyServer:80/sql',則在 CREATE ENDPOINT 陳述式中指定 SITE='MyServer'。* (星號)
意味著接聽作業適用於未明確保留之電腦所有可能的主機名稱。+ (加號)
意味著接聽作業適用於該電腦所有可能的主機名稱。webSite
這是該電腦的特定主機名稱。
[ CLEAR_PORT **=**clearPort ]
指定未用過的通訊埠編號。 如果 PORTS = (CLEAR),這個 clearPort 會指定未用過的通訊埠編號。 預設通訊埠編號是 80。[ SSL_PORT**=**SSLPort ]
指定 SSL 通訊埠編號。 如果 PORTS = (SSL),SSLPort 會指定 SSL 通訊埠編號。 預設 SSL 通訊埠編號是 443。[ AUTH_REALM = { 'realm' | NONE } ]
如果 AUTHENTICATION = DIGEST,會指定傳回用戶端的提示 (該用戶端就是將 SOAP 要求傳送至端點的用戶端) 做為 HTTP 驗證挑戰的一部分。 預設值是 NONE。[ DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
如果 AUTHENTICATION = BASIC,會指定預設登入網域。 預設值是 NONE。[ COMPRESSION = { ENABLED | DISABLED } ]
如果設為 ENABLED,SQL Server 會支援從中接受 gzip 編碼的要求,然後傳回壓縮的回應。 換句話說,若要求送入時含有將 GZIP 指定為有效「接受編碼」的 HTTP 標頭,伺服器會傳回「gzip 已編碼」回應。 預設值是 DISABLED。
TCP 通訊協定選項
下列引數只適用於 TCP 通訊協定選項。
LISTENER_PORT **=**listenerPort
指定 Service Broker TCP/IP 通訊協定用來接聽連接時所用的通訊埠編號。 依慣例會使用 4022,但介於 1024 和 32767 之間的任何數字都有效。LISTENER_IP = ALL | **(**4-part-ip ) | ( "ip_address_v6" )
指定端點將接聽的 IP 位址。 預設值是 ALL。 這表示接聽程式會接受與任何有效 IP 位址的連接。如果您使用 IP 位址來設定資料庫鏡像,而不是使用完整網域名稱 (ALTER DATABASE SET PARTNER = partner_IP_address 或 ALTER DATABASE SET WITNESS = witness_IP_address),則當您建立鏡像端點時,您必須指定 LISTENER_IP =IP_address 而非 LISTENER_IP=ALL。
SOAP 引數
以下是 SOAP 選項特定的引數。
[!附註]
原生 XML Web 服務 (SOAP/HTTP 端點) 已被取代。 如需詳細資訊,請參閱<原生 XML Web 服務:在 SQL Server 2008 中已被取代>。
[ WEBMETHOD [ 'namespace' .] 'method_alias' ]
指定方法,您可以針對該方法將 HTTP SOAP 要求傳送至端點。 每個 WEBMETHOD 子句分別描述一個方法;不過,也可以針對端點公開多個方法。 如果未指定 namespace,就假設是端點的命名空間。不需要任何方法,您就可以建立端點,之後再利用 ALTER ENDPOINT 將方法加入端點中。
重要事項 如果您利用 WEBMETHOD 公開方法,您必須確定:當相同 HTTP 端點服務多個 SQL Server 資料庫時沒有重複的名稱。 若要避免這種情況,請考慮在命名空間路徑中加入註冊網域名稱 URL。
NAME ='database.schema.name'
指定對應到 WEBMETHOD 指定之 SOAP 方法的預存程序名稱或使用者定義函數名稱。 database**.schema.name 必須是符合識別碼規則的三部分名稱。 如果 database.schema.**name 不存在,會傳回警告,但 DDL 作業仍會成功。[ SCHEMA = { NONE | STANDARD | DEFAULT } ]
(這個選項適用於 WEBMETHOD 子句)。 判斷是否會在 SOAP 回應中傳回目前 Web 方法的內嵌 XSD 結構描述。NONE
不會針對透過 SOAP 所傳送的 SELECT 陳述式結果傳回 XSD 結構描述。STANDARD
針對透過 SOAP 所傳送的 SELECT 陳述式結果傳回 XSD 結構描述。DEFAULT
預設值是端點 SCHEMA 選項設定。
如果未指定結構描述,或這個選項設為 DEFAULT,則針對端點指定的 SCHEMA 選項會決定是否傳回方法結果的 SCHEMA。
若要取得使用 FOR XML 選項之 SELECT 查詢的結構描述,不論這裡的 SCHEMA 選項的設定為何,您都必須在查詢中指定 XMLSCHEMA 選項。
[ FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
指定是否要隨同結果集傳回資料列計數、錯誤訊息及警告。 預設值是 ALL_RESULTS。ALL_RESULTS
在 SOAP 回應中傳回結果集、資料列計數及錯誤訊息和警告。ROWSETS_ONLY
只傳回結果集。如果您要傳回結果做為單一資料集 (System.Data.Dataset 物件),而不是做為物件陣列,請搭配使用 Visual Studio 2005 Web 服務 Proxy 類別產生器的用戶端應用程式,來使用這個選項。
NONE
抑制傳回伺服器回應中 SOAP 特定的標記。這個選項可當做支援特定應用程式的機制,該應用程式有一個預存程序,在該預存程序中,伺服器會在原始模式下依現狀傳回回應。 當這個選項為有效時,應用程式會負責傳回格式正確的 XML。 基於數種原因,這項功能可用來控制回應,例如,它可用來建立一個可以傳回 WS 原則的預存程序。 以下是 FORMAT=NONE 選項的使用條件:
必須利用不含輸出參數的預存程序來實作方法。 使用者定義函數不能搭配這個回應格式使用。
查詢必須是單一陳述式 FOR XML 查詢 (多個 FOR XML 陳述式不能搭配這個回應格式使用);或者,輸出必須由具有名稱 XML_F52E2B61-18A1-11d1-B105-00805F49916B 且屬於類型 nvarchar 的單一資料行組成。
BATCHES = { ENABLED | DISABLED }
指定端點上是否支援特定 SQL 要求。 預設值是 DISABLED。ENABLED 允許將使用 sqlbatch 方法之特定查詢的 SOAP 要求傳送至這個端點。
如果批次已啟用,便可呼叫 sql:sqlbatch 方法,在端點上執行特定 SQL 要求。 這個方法也會公開參數化查詢功能;因此,它可以取得 SqlParameter 元素的選擇性清單,這些元素會描述指定查詢之參數的中繼資料和值
以 @ 記號 (@) 為開頭的參數名稱可內嵌於查詢內。 必須提供相符的參數名稱;否則就會針對要求傳回錯誤。
LOGIN_TYPE = { MIXED | WINDOWS }
指定端點的 SQL Server 驗證模式。 如果未指定 LOGIN_TYPE,預設值是 WINDOWS。LOGIN_TYPE 只能用來進一步限制特定端點的驗證模式,這些端點是以安裝 SQL Server 執行個體時選取的伺服器全域驗證模式為基礎。
MIXED
允許利用 SQL Server 驗證或 Windows 驗證來驗證端點使用者。如果指定 MIXED,且伺服器是在 Windows 驗證模式下安裝的,就會傳回錯誤。
當設為 MIXED 時,端點上會支援 SQL Server 驗證,且必須設定端點來使用安全通訊端層 (SSL) 通訊埠。
WINDOWS
只允許利用 Windows 驗證來驗證端點使用者。
WSDL = { NONE | DEFAULT | 'sp_name' }
指出是否可針對這個端點支援 WSDL 文件產生。 如果是 NONE,則不會針對提交給端點的 WSDL 查詢產生或傳回 WSDL 回應。 如果是 DEFAULT,就會針對提交給端點的 WSDL 查詢,產生及傳回預設 WSDL 回應。 當您要針對端點實作自訂 WSDL 支援時,這是例外的情形,此時您也可以利用會傳回已修改之 WSDL 文件的名稱,以指定預存程序。[ SESSIONS = { ENABLED | DISABLED } ]
指定 SQL Server 的執行個體是否允許工作階段支援。 如果設為 ENABLED,SQL Server 允許工作階段支援,透過這項支援,多重 SOAP 要求/回應訊息配對可被識別為單一 SOAP 工作階段的一部分。 預設值是 DISABLED。SESSION_TIMEOUT **=**timeoutInterval
指定時間 (以秒表示的整數值),該時間是指在未收到進一步的要求時,位於伺服器的 SOAP 工作階段到期前的可用時間。 預設值是 60 秒。 這個值會覆寫在 SOAP 工作階段標頭所指定的逾時值。逾時時間是在伺服器將 SOAP 回應訊息傳送至用戶端之後起始設定的。 如果在發出其他 SOAP 要求 (此要求含有它的標頭中指定的相同工作階段識別碼) 之前就達到逾時,位於伺服器的工作階段就會終止。
[ DATABASE = { 'database_name' | DEFAULT } ]
指定資料庫,要求的作業將在該資料庫的內容中執行。 如果未指定 database_name,或是指定 DEFAULT,就會使用登入的預設資料庫。[ NAMESPACE = { 'namespace' | DEFAULT } ]
指定端點的命名空間。 如果未指定 namespace,或是指定了 DEFAULT,則假設的命名空間是 http://tempuri.org。 當您利用 WEBMETHOD **'namespace'**namespace 指定特定方法時,您可以覆寫預設命名空間。[ SCHEMA = { NONE | STANDARD } ]
指定是否要在傳送 SOAP 結果時,由端點傳回 XSD 結構描述。NONE
從 SOAP 回應中省略內嵌結構描述。STANDARD
將內嵌結構描述併入端點回應中。
[!附註]
若要在使用 Visual Studio 2005 時將 SOAP 結果載入 System.Data.DataSet 物件中,則需要內嵌結構描述;因此,必須指定 STANDARD。
[CHARACTER_SET = { SQL | XML } ]
定義作業結果包含 XML 中無效的字元時之行為。 預設值是 XML。SQL
先將無效字元編碼成字元參考,再於結果中傳回這些字元。 在此情況下,XML 剖析器可能會將傳回的 XML 視為無效而予以拒絕。XML
根據 XML 規格進行字元編碼。 XML 字元集中不允許的任何字元都會導致 SQL Server 將無效 XML 的錯誤傳回用戶端。
HEADER_LIMIT
指定 SOAP Envelope 中之標頭區段的大小上限 (以位元組為單位)。 如果 SOAP 標頭不適合這個大小,伺服器會產生剖析錯誤。 若未指定,則假設是預設值 8 KB (8192 位元組)。
SERVICE_BROKER 和 DATABASE_MIRRORING 選項
下列 AUTHENTICATION 和 ENCRYPTION 引數由 SERVICE_BROKER 和 DATABASE_MIRRORING 選項共用。
[!附註]
有關 SERVICE_BROKER 特定的選項,請參閱本節稍後的「SERVICE_BROKER 選項」。 有關 DATABASE_MIRRORING 特定的選項,請參閱本節稍後的「DATABASE_MIRRORING 選項」。
AUTHENTICATION = <authentication_options>
指定此端點連接的 TCP/IP 驗證需求。 預設值是 WINDOWS。支援的驗證方法包括 NTLM 及 (或) Kerberos。 如需有關這些方法的詳細資訊,請參閱<端點驗證類型>。
重要事項 伺服器執行個體中的所有鏡像連接全都使用單一資料庫鏡像端點。 建立其他資料庫鏡像端點的任何嘗試都會失敗。
<authentication_options> ::=
WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
指定端點要利用 Windows 驗證通訊協定連接來驗證端點。 這是預設值。如果您指定授權方法 (NTLM 或 KERBEROS),一律以該方法做為驗證通訊協定。 預設值 NEGOTIATE 會導致端點利用 Windows 交涉通訊協定來選擇 NTLM 或 Kerberos。
CERTIFICATE certificate_name
指定端點必須利用 certificate_name 所指定的憑證驗證連接,來建立授權的識別。 遠端點必須有一個特定憑證,該憑證含有符合指定憑證之私密金鑰的公開金鑰。WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
指定端點必須嘗試利用 Windows 驗證連接,而且,如果該嘗試失敗,則嘗試使用指定的憑證。CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
指定端點必須嘗試利用指定的憑證連接,而且,如果該嘗試失敗,則嘗試使用 Windows 驗證。
ENCRYPTION = { DISABLED | SUPPORTED | REQUIRED } [ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ]
指定是否要在處理序中使用加密。 預設值是 REQUIRED。DISABLED
指定透過連接傳送的資料不加密。SUPPORTED
指定只有在相對端點指定為 SUPPORTED 或 REQUIRED 時才加密資料。REQUIRED
指定這個端點的連接必須使用加密。 因此,若要連接這個端點,其他端點必須將 ENCRYPTION 設為 SUPPORTED 或 REQUIRED。
您也可以選擇性地利用 ALGORITHM 引數來指定端點使用的加密格式,如下所示:
RC4
指定端點必須使用 RC4 演算法。 這是預設值。AES
指定端點必須使用 AES 演算法。AES RC4
指定這兩個端點必須與這個偏好 AES 演算法的端點針對加密演算法進行交涉。RC4 AES
指定這兩個端點必須與這個偏好 RC4 演算法的端點針對加密演算法進行交涉。
[!附註]
RC4 演算法已被取代。 未來的 Microsoft SQL Server 版本將移除這項功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。 我們建議您改用 AES。
如果這兩個端點都指定了這兩種演算法 (但指定順序不同),則以接受連接的端點為準。
SERVICE_BROKER 選項
以下是 SERVICE_BROKER 選項特定的引數。
MESSAGE_FORWARDING = { ENABLED | DISABLED }
判斷是否要轉送這個端點接收的訊息 (適用於位在其他位置的服務)。ENABLED
如果已提供轉送位址,則會轉送訊息。DISABLED
捨棄適用於其他位置的服務之訊息。 這是預設值。
MESSAGE_FORWARD_SIZE **=**forward_size
指定當儲存即將要轉送的訊息時,配置給端點使用的最大儲存體數量 (以 MB 為單位)。
DATABASE_MIRRORING 選項
以下是 DATABASE_MIRRORING 選項特定的引數。
ROLE = { WITNESS | PARTNER | ALL }
指定端點支援的資料庫鏡像一個或多個角色。WITNESS
使端點在鏡像處理序中能夠以見證角色來執行。[!附註]
如果是 SQL Server 2005 Express Edition,WITNESS 是唯一的可用選項。
PARTNER
使端點在鏡像處理序中能夠以夥伴角色來執行。ALL
使端點在鏡像處理序中能夠同時以見證和夥伴角色來執行。
如需有關這些角色的詳細資訊,請參閱<資料庫鏡像概觀>。
[!附註]
如果是 DATABASE_MIRRORING,只有 TCP 可以當做傳輸通訊協定,HTTP 不可以。 DATABASE_MIRRORING 沒有預設的通訊埠。
備註
ENDPOINT DDL 陳述式不能在使用者交易內執行。 即使使用中的快照隔離等級正在使用變更的端點,ENDPOINT DDL 陳述式也不會失敗。
可利用下列方式,針對 ENDPOINT 來執行要求:
系統管理員 (sysadmin) 固定伺服器角色的成員
端點的擁有者
已被授與端點之 CONNECT 權限的使用者或群組
範例
A. 建立要用於 SOAP 要求的端點
下列範例利用 GetSqlInfo 和 DayAsNumber 這兩個方法建立一個稱為 sql_endpoint 的端點: 這些方法可讓用戶端將 SOAP 要求傳送至端點。
就每個方法而言,FORMAT 選項的預設值都是 ALL_RESULTS。 因此,方法要求的 SOAP 回應會包含錯誤訊息、警告及資料列計數資訊。
請注意下列 SOAP 特定的設定:
SCHEMA 選項設為端點的 STANDARD。 因此,依預設,SOAP 回應中會傳回內嵌結構描述。
WSDL 選項設為 DEFAULT。 因此,如果用戶端要求從這個端點 (https://Server/sql?wsdl) 送出的 WSDL 回應,伺服器就會產生 WSDL 回應,並將它傳回用戶端。
DROP ENDPOINT sql_endpoint;
GO
CREATE ENDPOINT sql_endpoint
STATE = STARTED
AS HTTP(
PATH = '/sql',
AUTHENTICATION = (INTEGRATED ),
PORTS = ( CLEAR ),
SITE = 'SERVER'
)
FOR SOAP (
WEBMETHOD 'GetSqlInfo'
(name='master.dbo.xp_msver',
SCHEMA=STANDARD ),
WEBMETHOD 'DayAsNumber'
(name='master.sys.fn_MSdayasnumber'),
WSDL = DEFAULT,
SCHEMA = STANDARD,
DATABASE = 'master',
NAMESPACE = 'http://tempUri.org/'
);
GO
您可以查詢目錄檢視,來尋找您先前建立之端點的相關資訊,如下列範例所示。 您也可以對這些目錄檢視執行聯結作業,來取得您要的資料。
查詢 sys.endpoints 來擷取系統中的所有端點資訊。 這包括名稱、端點識別碼、擁有端點之伺服器主體的識別碼,以及端點的其他屬性。
SELECT *
FROM sys.endpoints;
您可以查詢 sys.http_endpoints 來擷取有關 HTTP 的詳細端點資訊,例如:SITE、URL、AUTHENTICATION 機制及其他 HTTP 特定的資訊。
SELECT *
FROM sys.http_endpoints;
若要擷取有關端點的 SOAP 特定的資訊,請查詢 sys.soap_endpoints。
SELECT *
FROM sys.soap_endpoints;
若要擷取端點上所定義的 SOAP 方法,請查詢 sys.endpoint_webmethods。
SELECT *
FROM sys.endpoint_webmethods;
B. 建立資料庫鏡像端點
下列範例建立資料庫鏡像端點。 該端點使用的是通訊埠編號 7022 (雖然任何可用通訊埠編號都適用)。 該端點設定為只利用 Kerberos 來使用 Windows 驗證。 ENCRYPTION 選項設定為非預設值 SUPPORTED,來支援加密或未加密資料。 該端點設定為同時支援夥伴和見證角色。
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (
AUTHENTICATION = WINDOWS KERBEROS,
ENCRYPTION = SUPPORTED,
ROLE=ALL);
GO
C. 指定通訊埠
從 Windows Server 2003 開始,在 Windows Server 上建立 SOAP 端點時,如果路徑 (URL) 和通訊埠組合正由 IIS 所使用,CREATE ENDPOINT 將會失敗。
在 Windows XP 上,您可能需要停止 IIS,SOAP 端點才能運作。
CREATE ENDPOINT sql_endpoint
STATE = STARTED
AS HTTP
( PATH = '/sql',
AUTHENTICATION = (INTEGRATED ),
PORTS = ( CLEAR ),
SITE = 'SERVER',
CLEAR_PORT = 2000 )
FOR SOAP
( WEBMETHOD 'GetSqlInfo' (name='master.dbo.xp_msver', SCHEMA=STANDARD ),
WEBMETHOD 'DayAsNumber' (name='master.sys.fn_MSdayasnumber'),
WSDL = DEFAULT,
SCHEMA = STANDARD,
DATABASE = 'master',
NAMESPACE = 'http://tempUri.org/' );