CREATE ENDPOINT (Transact-SQL)

エンドポイントを作成し、クライアント アプリケーションで使用可能なメソッドを含む、プロパティを定義します。関連する権限の詳細については、「GRANT (エンドポイントの権限の許可) (Transact-SQL)」を参照してください。

CREATE ENDPOINT の構文は、論理的に次の 2 つの部分に分かれます。

  • 最初の部分は、AS から始まり FOR 句の前までの部分です。

    この部分では、TCP または HTTP などのトランスポート プロトコルに固有な情報を指定し、エンドポイントの受信ポート番号、エンドポイント認証方法、およびエンドポイントへのアクセスを制限する IP アドレスのリスト (該当する場合) を設定します。

  • 2 番目は FOR 句から始まる部分です。

    この部分では、エンドポイントでサポートされているペイロードを定義します。ペイロードには、サポートされている SOAP、Transact-SQL、Service Broker、データベース ミラーリングのうちのいずれかを指定できます。ここでは、言語固有の情報も指定できます。たとえば、HTTP SOAP を使用する場合、Web メソッドとしてエンドポイントで公開するプロシージャを指定します。各 Web メソッドごとに、対応する SQL Server ストアド プロシージャまたはマップ先のユーザー定義関数を指定します。その後、クライアント アプリケーションはエンドポイントでこれらのメソッドを呼び出す HTTP SOAP 要求を送信できます。また、以下のような他の SOAP 構成情報も指定できます。

    • アドホック クエリ要求を許可するかどうか

    • 結果セットの XSD スキーマを返すかどうか

    • 要求されたメソッドが実行されるデータベース コンテキスト

    • エンドポイントの名前空間

    • 結果の中の XML で有効でない文字の処理方法

注意注意

SQL Server 2008 では、ネイティブ XML Web サービス (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 }
    ペイロードの種類を指定します。

    現時点では、<language_specific_arguments> パラメータに渡す Transact-SQL 言語固有の引数はありません。

    SQL Server 2008 では、ネイティブ XML Web サービス (SOAP/HTTP エンドポイント) の使用は推奨されません。詳細については、「ネイティブ XML Web サービス (SQL Server 2008 では非推奨)」を参照してください。

HTTP プロトコル オプション

以下は、HTTP プロトコル オプションにのみ適用されます。

  • PATH = 'url'
    SITE 引数で指定されたホスト コンピュータ上のエンドポイントの場所を識別する URL パスを指定します。PATH は、要求を適切にルーティングするためにリスナが使用する URL 名前空間の論理的な区分です。PATH は、クライアントが HTTP SOAP 要求を SQL Server のインスタンスに送信するために使用する URL の一部である必要があります。たとえば、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 を指定した場合、受信要求には Secure 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 の場合、HTTP 認証の試行の一部として、SOAP 要求をエンドポイントに送信したクライアントに返されるヒントを指定します。既定値は NONE です。

  • [ DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
    AUTHENTICATION = BASIC の場合、既定のログイン ドメインを指定します。既定値は NONE です。

  • [ COMPRESSION = { ENABLED | DISABLED } ]
    ENABLED に設定した場合、SQL Server は gzip エンコードが受け付けられる要求を受け入れ、圧縮された応答を返します。つまり、要求が GZIP を有効な "accept-encoding" として指定する 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=ALL の代わりに LISTENER_IP =IP_address を指定する必要があります。

SOAP 引数

以下の引数は SOAP オプションに固有のものです。

注意注意

SQL Server 2008 では、ネイティブ XML Web サービス (SOAP/HTTP エンドポイント) の使用は推奨されません。詳細については、「ネイティブ XML Web サービス (SQL Server 2008 では非推奨)」を参照してください。

  • [ WEBMETHOD [ 'namespace' .] 'method_alias' ]
    HTTP SOAP 要求をエンドポイントに送信できるメソッドを指定します。各 WEBMETHOD 句は 1 つのメソッドを記述しますが、エンドポイントに対して複数のメソッドを公開することができます。namespace を指定しない場合、エンドポイントの名前空間になります。

    メソッドを指定せずにエンドポイントを作成し、その後 ALTER ENDPOINT を使用してメソッドを追加することもできます。

    重要な注意事項重要

    WEBMETHOD を使用してメソッドを公開する場合、複数の SQL Server データベースが同じ HTTP エンドポイントによってサービスされるときは、重複する名前がないことを確認してください。名前の重複を避けるには、登録されているドメイン名の URL を名前空間のパスの一部に追加することを検討してください。

  • NAME ='database.schema.name'
    WEBMETHOD で指定した SOAP メソッドに対応するストアド プロシージャまたはユーザー定義関数を指定します。database**.schema.name は、識別子の規則に従った 3 つの部分から構成される名前であることが必要です。database.schema.**name が存在しない場合、警告が返されますが DDL 操作は成功します。

  • [ SCHEMA = { NONE | STANDARD | DEFAULT } ]
    (WEBMETHOD 句で使用するオプションです。) SOAP 応答において現在の Web メソッドに対するインライン XSD スキーマを返すかどうかを決定します。

    • NONE
      SOAP を介して送られた SELECT ステートメントの結果に、XSD スキーマは返されません。

    • STANDARD
      SOAP を介して送られた SELECT ステートメントの結果に、XSD スキーマが返されます。

    • DEFAULT
      既定値のエンドポイントの SCHEMA オプションを設定します。

    スキーマを指定しない場合、またはこのオプションを DEFAULT に設定した場合、エンドポイントに対して指定されている SCHEMA オプションによって、メソッドの結果に対するスキーマが返されるかどうかが決まります。

    FOR XML オプションを使用する SELECT クエリの結果のスキーマを取得するには、この SCHEMA オプションの設定に関係なく、クエリで XMLSCHEMA オプションを指定する必要があります。

  • [ FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
    行数、エラー メッセージ、および警告を結果セットと共に返すかどうかを指定します。既定値は ALL_RESULTS です。

    • ALL_RESULTS
      SOAP 応答で、結果セット、行数、エラー メッセージ、および警告を返します。

    • ROWSETS_ONLY
      結果セットのみを返します。

      結果をオブジェクトの配列ではなく 1 つのデータセット (System.Data.Dataset オブジェクト) として返す場合は、Visual Studio 2005 Web サービス プロキシ クラス ジェネレータを使用するクライアント アプリケーションでこのオプションを使用してください。

    • NONE
      サーバーの応答で SOAP 固有のマークアップを返さないようにします。

      このオプションを使用すると、サーバーが応答をそのまま、つまり RAW モードで返すストアド プロシージャを使用するアプリケーションをサポートすることができます。このオプションが有効な場合、アプリケーションは正常な形式の XML を返す機能を果たします。この機能は、さまざまな理由で応答を制御するのに使用できます。たとえば、WS-Policy を返すストアド プロシージャを作成するのに使用できます。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 認証のどちらかを使用してエンドポイント ユーザーを認証できるようにします。

      サーバーが Windows 認証モードでインストールされている場合に MIXED を指定すると、エラーが返されます。

      MIXED に設定すると、SQL Server 認証がエンドポイントでサポートされ、エンドポイントは SSL (Secure Sockets Layer) ポートを使用するように構成することが必要になります。

    • 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 応答メッセージをクライアントに送信するのを終了した時点で初期化されます。ヘッダーに同じセッション ID が指定された別の 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 エンベロープのヘッダー セクションの最大サイズをバイト単位で指定します。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、あるいはその両方です。これらの方法の詳細については、「エンドポイント認証の種類」を参照してください。

    重要な注意事項重要

    1 つのサーバー インスタンス上のすべてのミラーリング接続で、1 つのデータベース ミラーリング エンドポイントが使用されます。追加のデータベース ミラーリング エンドポイントを作成しようとしても失敗します。

    <authentication_options> ::=

    • WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      エンドポイントが、エンドポイントの認証方法として Windows 認証プロトコルを使用して接続することを指定します。これは既定値です。

      1 つの認証方法 (NTLM または KERBEROS) を指定した場合、その方法が常に認証プロトコルとして使用されます。既定値の NEGOTIATE を指定すると、エンドポイントは Windows ネゴシエーション プロトコルを使用して NTLM か Kerberos のどちらかを選択します。

    • CERTIFICATE certificate_name
      エンドポイントが、認証用の ID を設定するために 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
      2 つのエンドポイントが、AES アルゴリズムを優先するこのエンドポイントと暗号化アルゴリズムについてネゴシエートすることを指定します。

    • RC4 AES
      2 つのエンドポイントが、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 要求で使用するエンドポイントを作成する

次の例では、sql_endpoint というエンドポイントを 2 つのメソッド GetSqlInfo および DayAsNumber で作成しています。これらは、クライアントが 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 にクエリを実行して、システムのすべてのエンドポイント情報を取得します。この情報には、名前、エンドポイントの ID、エンドポイントを所有するサーバー プリンシパルの ID、およびエンドポイントのその他のプロパティがあります。

SELECT *
FROM sys.endpoints;

sys.http_endpoints にクエリを実行すると、SITE、URL、AUTHENTICATION メカニズム、およびその他の HTTP 固有の情報など、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 で SOAP エンドポイントを機能させるためには、IIS を停止しなければならない場合があります。

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