共用方式為


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 的字元

[!附註]

在 SQL Server 2008 中,原生 XML Web Service (SOAP/HTTP 端點) 已被取代。如需詳細資訊,請參閱<原生 XML Web 服務:在 SQL Server 2008 中已被取代>。

主題連結圖示Transact-SQL 語法慣例

語法

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> 參數。

    在 SQL Server 2008 中,原生 XML Web Service (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 選項特定的引數。

[!附註]

在 SQL Server 2008 中,原生 XML Web Service (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 權限的使用者或群組

權限

需要 CREATE ENDPOINT 權限或系統管理員 (sysadmin) 固定伺服器角色的成員資格。如需詳細資訊,請參閱<GRANT 端點權限 (Transact-SQL)>。

範例

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/' );