CREATE ENDPOINT (Transact-SQL)CREATE ENDPOINT (Transact-SQL)

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

エンドポイントを作成し、クライアント アプリケーションで使用可能なメソッドを含む、プロパティを定義します。Creates endpoints and defines their properties, including the methods available to client applications. 関連する権限については、「GRANT (エンドポイントの権限の許可) (Transact-SQL)」を参照してください。For related permissions information, see GRANT Endpoint Permissions (Transact-SQL).

CREATE ENDPOINT の構文は、論理的に次の 2 つの部分に分かれます。The syntax for CREATE ENDPOINT can logically be broken into two parts:

  • 最初の部分は、AS から始まり FOR 句の前までの部分です。The first part starts with AS and ends before the FOR clause.

    この部分では、トランスポート プロトコル (TCP) に固有の情報を指定し、エンドポイントの受信ポート番号、エンドポイント認証方法、およびエンドポイントへのアクセスを制限する IP アドレスのリスト (該当する場合) を設定します。In this part, you provide information specific to the transport protocol (TCP) and set a listening port number for the endpoint, as well as the method of endpoint authentication and/or a list of IP addresses (if any) that you want to restrict from accessing the endpoint.

  • 2 番目は FOR 句から始まる部分です。The second part starts with the FOR clause.

    この部分では、エンドポイントでサポートされているペイロードを定義します。In this part, you define the payload that is supported on the endpoint. ペイロードには、サポートされている Transact-SQLTransact-SQL、Service Broker、データベース ミラーリングのうちのいずれかを指定できます。The payload can be one of several supported types: Transact-SQLTransact-SQL, service broker, database mirroring. ここでは、言語固有の情報も指定できます。In this part, you also include language-specific information.

注: SQL Server 2012 (11.x)SQL Server 2012 (11.x) からは、ネイティブ XML Web サービス (SOAP/HTTP エンドポイント) は削除されました。NOTE: Native XML Web Services (SOAP/HTTP endpoints) was removed in SQL Server 2012 (11.x)SQL Server 2012 (11.x).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

CREATE ENDPOINT endPointName [ AUTHORIZATION login ]  
[ STATE = { STARTED | STOPPED | DISABLED } ]  
AS { TCP } (  
   <protocol_specific_arguments>  
        )  
FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (  
   <language_specific_arguments>  
        )  
  
<AS TCP_protocol_specific_arguments> ::=  
AS TCP (  
  LISTENER_PORT = listenerPort  
  [ [ , ] LISTENER_IP = ALL | ( xx.xx.xx.xx IPv4 address ) | ( '__:__1' IPv6 address ) ]  
  
)  
  
<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 { AES | RC4 | 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 { AES | RC4 | AES RC4 | RC4 AES } ] }   
  
    ]   
   [ , ] ROLE = { WITNESS | PARTNER | ALL }  
)  

引数Arguments

endPointNameendPointName
作成するエンドポイントに割り当てられた名前です。Is the assigned name for the endpoint you are creating. エンドポイントを更新または削除する場合に使用します。Use when updating or deleting the endpoint.

AUTHORIZATION loginAUTHORIZATION login
新規に作成されたエンドポイント オブジェクトの所有権が割り当てられる有効な SQL ServerSQL Server または Windows ログインを指定します。Specifies a valid SQL ServerSQL Server or Windows login that is assigned ownership of the newly created endpoint object. AUTHORIZATION を指定しない場合、既定により、呼び出し元が新しく作成されたオブジェクトの所有者となります。If AUTHORIZATION is not specified, by default, the caller becomes owner of the newly created object.

AUTHORIZATION を指定して所有権を割り当てるには、呼び出し元は指定された login に対する IMPERSONATE 権限が必要です。To assign ownership by specifying AUTHORIZATION, the caller must have IMPERSONATE permission on the specified login.

所有権を再割り当てする場合は、「ALTER ENDPOINT (Transact-SQL)」を参照してください。To reassign ownership, see ALTER ENDPOINT (Transact-SQL).

STATE = { STARTED | STOPPED | DISABLED }STATE = { STARTED | STOPPED | DISABLED }
エンドポイントの作成時点での状態です。Is the state of the endpoint when it is created. エンドポイントの作成時点での状態を指定しない場合、既定値は STOPPED です。If the state is not specified when the endpoint is created, STOPPED is the default.

STARTEDSTARTED
エンドポイントが開始され、接続をアクティブにリッスンしています。Endpoint is started and is actively listening for connections.

DISABLEDDISABLED
エンドポイントは無効です。Endpoint is disabled. この状態では、サーバーはポートの要求をリッスンしますが、クライアントにはエラーを返します。In this state, the server listens to port requests but returns errors to clients.

STOPPEDSTOPPED
エンドポイントは停止しています。Endpoint is stopped. この状態の場合、サーバーはエンドポイントのポートをリッスンしておらず、エンドポイントの使用要求にも応答しません。In this state, the server does not listen to the endpoint port or respond to any attempted requests to use the endpoint.

状態を変更する場合は、「ALTER ENDPOINT (Transact-SQL)」を参照してください。To change the state, use ALTER ENDPOINT (Transact-SQL).

AS { TCP }AS { TCP }
使用するトランスポート プロトコルを指定します。Specifies the transport protocol to use.

FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
ペイロードの種類を指定します。Specifies the payload type.

現時点では、<language_specific_arguments> パラメーターに渡す Transact-SQLTransact-SQL 言語固有の引数はありません。Currently, there are no Transact-SQLTransact-SQL language-specific arguments to pass in the <language_specific_arguments> parameter.

TCP プロトコル オプションTCP Protocol Option

以下は、TCP プロトコル オプションにのみ適用されます。The following arguments apply only to the TCP protocol option.

LISTENER_PORT = listenerPortLISTENER_PORT =listenerPort
Service Broker TCP/IP プロトコルによって接続を受信待ちされるポート番号を指定します。Specifies the port number listened to for connections by the service broker TCP/IP protocol. 通常は 4022 が使用されますが、1024 ~ 32767 の範囲であればどの番号でも有効です。By convention, 4022 is used but any number between 1024 and 32767 is valid.

LISTENER_IP = ALL | ( 4-part-ip ) | ( "ip_address_v6" )LISTENER_IP = ALL | (4-part-ip ) | ( "ip_address_v6" )
エンドポイントが受信待ちする IP アドレスを指定します。Specifies the IP address that the endpoint will listen on. 既定値は ALL です。The default is ALL. したがって、リスナーによって任意の有効な IP アドレスでの接続が許可されます。This means that the listener will accept a connection on any valid IP address.

完全修飾ドメイン名の代わりに IP アドレスを使用してデータベース ミラーリングを構成する (ALTER DATABASE SET PARTNER = partner_IP_address または ALTER DATABASE SET WITNESS = witness_IP_address) 場合は、ミラーリング エンドポイントの作成時に LISTENER_IP=ALL の代わりに LISTENER_IP =IP_address を指定する必要があります。If you configure database mirroring with an IP address instead of a fully-qualified domain name (ALTER DATABASE SET PARTNER = partner_IP_address or ALTER DATABASE SET WITNESS = witness_IP_address), you have to specify LISTENER_IP =IP_address instead of LISTENER_IP=ALL when you create mirroring endpoints.

SERVICE_BROKER オプションと DATABASE_MIRRORING オプションSERVICE_BROKER and DATABASE_MIRRORING Options

以下の AUTHENTICATION 引数と ENCRYPTION 引数は、SERVICE_BROKER オプションと DATABASE_MIRRORING オプションで共通です。The following AUTHENTICATION and ENCRYPTION arguments are common to the SERVICE_BROKER and DATABASE_MIRRORING options.

注意

SERVICE_BROKER 固有のオプションについては、後の「SERVICE_BROKER オプション」を参照してください。For options that are specific to SERVICE_BROKER, see "SERVICE_BROKER Options," later in this section. DATABASE_MIRRORING 固有のオプションについては、後の「DATABASE_MIRRORING オプション」を参照してください。For options that are specific to DATABASE_MIRRORING, see "DATABASE_MIRRORING Options," later in this section.

AUTHENTICATION = <authentication_options> このエンドポイントの接続に対する TCP/IP 認証要件を指定します。AUTHENTICATION = <authentication_options> Specifies the TCP/IP authentication requirements for connections for this endpoint. 既定値は WINDOWS です。The default is WINDOWS.

サポートされている認証方法は NTLM または Kerberos、あるいはその両方です。The supported authentication methods include NTLM and or Kerberos or both.

重要

1 つのサーバー インスタンス上のすべてのミラーリング接続で、1 つのデータベース ミラーリング エンドポイントが使用されます。All mirroring connections on a server instance use a single database mirroring endpoint. 追加のデータベース ミラーリング エンドポイントを作成しようとしても失敗します。Any attempt to create an additional database mirroring endpoint will fail.

<authentication_options> ::=<authentication_options> ::=

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
エンドポイントを認証するために、Windows 認証プロトコルを使用してエンドポイントを接続することを指定します。Specifies that the endpoint is to connect using Windows Authentication protocol to authenticate the endpoints. これは既定値です。This is the default.

1 つの認証方法 (NTLM または KERBEROS) を指定した場合、その方法が常に認証プロトコルとして使用されます。If you specify an authorization method (NTLM or KERBEROS), that method is always used as the authentication protocol. 既定値の NEGOTIATE を指定すると、エンドポイントは Windows ネゴシエーション プロトコルを使用して NTLM か Kerberos のどちらかを選択します。The default value, NEGOTIATE, causes the endpoint to use the Windows negotiation protocol to choose either NTLM or Kerberos.

CERTIFICATE certificate_nameCERTIFICATE certificate_name
エンドポイントが、認証用の ID を設定するために certificate_name で指定された証明書を使用して接続を認証することを指定します。Specifies that the endpoint is to authenticate the connection using the certificate specified by certificate_name to establish identity for authorization. 反対側のエンドポイントは、指定された証明書の秘密キーと一致する公開キー付きの証明書を持っている必要があります。The far endpoint must have a certificate with the public key matching the private key of the specified certificate.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_nameWINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
エンドポイントが Windows 認証を使用して接続を試み、それが失敗した場合は指定された証明書を使用することを指定します。Specifies that endpoint is to try to connect by using Windows Authentication and, if that attempt fails, to then try using the specified certificate.

CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
エンドポイントが、指定された証明書を使用して接続を試行され、それが失敗した場合は Windows 認証が使用されるよう指定します。Specifies that endpoint is to try to connect by using the specified certificate and, if that attempt fails, to then try using Windows Authentication.

ENCRYPTION = { DISABLED | SUPPORTED | REQUIRED } [ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ]ENCRYPTION = { DISABLED | SUPPORTED | REQUIRED } [ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ]
プロセスで暗号化を使用するかどうかを指定します。Specifies whether encryption is used in the process. 既定値は REQUIRED です。The default is REQUIRED.

DISABLEDDISABLED
接続を経由して送信されたデータが暗号化されないことを指定します。Specifies that data sent over a connection is not encrypted.

SUPPORTEDSUPPORTED
反対側のエンドポイントで SUPPORTED または REQUIRED が指定されている場合に限り、データを暗号化することを指定します。Specifies that the data is encrypted only if the opposite endpoint specifies either SUPPORTED or REQUIRED.

REQUIREDREQUIRED
このエンドポイントへの接続で暗号化を使用する必要があることを指定します。Specifies that connections to this endpoint must use encryption. したがって、このエンドポイントに接続するには、別のエンドポイントで ENCRYPTION が SUPPORTED または REQUIRED に設定されている必要があります。Therefore, to connect to this endpoint, another endpoint must have ENCRYPTION set to either SUPPORTED or REQUIRED.

必要に応じて、エンドポイントで使用される暗号化の形式を、ALGORITHM 引数を使用して次のように指定できます。Optionally, you can use the ALGORITHM argument to specify the form of encryption used by the endpoint, as follows:

AESAES
エンドポイントで AES アルゴリズムを使用する必要があることを指定します。Specifies that the endpoint must use the AES algorithm. これは SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降の既定値です。This is the default in SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later.

RC4RC4
エンドポイントで RC4 アルゴリズムを使用する必要があることを指定します。Specifies that the endpoint must use the RC4 algorithm. これは SQL Server 2014 (12.x)SQL Server 2014 (12.x) までの既定値です。This is the default through SQL Server 2014 (12.x)SQL Server 2014 (12.x).

注意

RC4 アルゴリズムは、旧バージョンとの互換性のためにのみサポートされています。The RC4 algorithm is only supported for backward compatibility. データベース互換性レベルが 90 または 100 の場合、新しい素材は RC4 または RC4_128 を使用してのみ暗号化できますNew material can only be encrypted using RC4 or RC4_128 when the database is in compatibility level 90 or 100. (非推奨)。AES アルゴリズムのいずれかなど、新しいアルゴリズムを使用してください。(Not recommended.) Use a newer algorithm such as one of the AES algorithms instead. SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降のバージョンでは、どの互換性レベルでも、RC4 または RC4_128 を使用して暗号化された素材を暗号化解除できます。In SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later versions, material encrypted using RC4 or RC4_128 can be decrypted in any compatibility level.

AES RC4AES RC4
2 つのエンドポイントが、AES アルゴリズムを優先するこのエンドポイントと暗号化アルゴリズムについてネゴシエートすることを指定します。Specifies that the two endpoints will negotiate for an encryption algorithm with this endpoint giving preference to the AES algorithm.

RC4 AESRC4 AES
2 つのエンドポイントで暗号化アルゴリズムをネゴシエートし、このエンドポイントでは RC4 アルゴリズムを優先することを示します。Specifies that the two endpoints will negotiate for an encryption algorithm with this endpoint giving preference to the RC4 algorithm.

注意

RC4 アルゴリズムは非推奨とされます。The RC4 algorithm is deprecated. この機能は、Microsoft SQL Server の将来のバージョンで削除されます。This feature will be removed in a future version of Microsoft SQL Server. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible. AES を使用することをお勧めします。We recommend that you use AES.

両方のエンドポイントで両方のアルゴリズムを異なる順序で指定した場合、接続を受け入れた方のエンドポイントが優先されます。If both endpoints specify both algorithms but in different orders, the endpoint accepting the connection wins.

SERVICE_BROKER オプションSERVICE_BROKER Options

以下の引数は SERVICE_BROKER オプションに固有のものです。The following arguments are specific to the SERVICE_BROKER option.

MESSAGE_FORWARDING = { ENABLED | DISABLED }MESSAGE_FORWARDING = { ENABLED | DISABLED }
このエンドポイントで受信された、別の場所にあるサービスのメッセージを転送するかどうかを指定します。Determines whether messages received by this endpoint that are for services located elsewhere will be forwarded.

ENABLEDENABLED
転送アドレスが使用可能であれば、メッセージを転送します。Forwards messages if a forwarding address is available.

DISABLEDDISABLED
別の場所にあるサービスのメッセージを破棄します。Discards messages for services located elsewhere. これは既定値です。This is the default.

MESSAGE_FORWARD_SIZE = forward_sizeMESSAGE_FORWARD_SIZE =forward_size
転送するメッセージを格納する際に使用するエンドポイントに対して割り当てる最大記憶容量を、MB 単位で指定します。Specifies the maximum amount of storage in megabytes to allocate for the endpoint to use when storing messages that are to be forwarded.

DATABASE_MIRRORING オプションDATABASE_MIRRORING Options

以下の引数は DATABASE_MIRRORING オプションに固有のものです。The following argument is specific to the DATABASE_MIRRORING option.

ROLE = { WITNESS | PARTNER | ALL }ROLE = { WITNESS | PARTNER | ALL }
エンドポイントによってサポートされるデータベース ミラーリング ロールを指定します。Specifies the database mirroring role or roles that the endpoint supports.

WITNESSWITNESS
エンドポイントがミラーリング プロセスにおいてミラーリング監視ロールを実行できるようにします。Enables the endpoint to perform in the role of a witness in the mirroring process.

注意

SQL Server 2005 Express EditionSQL Server 2005 Express Edition の場合は、WITNESS が唯一の使用可能なオプションです。For SQL Server 2005 Express EditionSQL Server 2005 Express Edition, WITNESS is the only option available.

PARTNERPARTNER
エンドポイントがミラーリング プロセスにおいてパートナー ロールを実行できるようにします。Enables the endpoint to perform in the role of a partner in the mirroring process.

ALLALL
エンドポイントが、ミラーリング プロセスにおいてミラーリング監視およびパートナーの両方のロールを実行できるようにします。Enables the endpoint to perform in the role of both a witness and a partner in the mirroring process.

これらのロールの詳細については、「データベース ミラーリング (SQL Server)」を参照してください。For more information about these roles, see Database Mirroring (SQL Server).

注意

DATABASE_MIRRORING には既定のポートはありません。There is no default port for DATABASE_MIRRORING.

RemarksRemarks

ENDPOINT DDL ステートメントは、ユーザー トランザクション内では実行できません。ENDPOINT DDL statements cannot be executed inside a user transaction. 変更対象となるエンドポイントが、アクティブなスナップショット分離レベル トランザクションで使用されている場合でも、ENDPOINT DDL ステートメントは失敗しません。ENDPOINT DDL statements do not fail even if an active snapshot isolation level transaction is using the endpoint being altered.

ENDPOINT に対する要求は、次のユーザーが実行できます。Requests can be executed against an ENDPOINT by the following:

  • sysadmin 固定サーバー ロールのメンバーMembers of sysadmin fixed server role

  • エンドポイントの所有者The owner of the endpoint

  • エンドポイントで CONNECT 権限を与えられたユーザーまたはグループUsers or groups that have been granted CONNECT permission on the endpoint

アクセス許可Permissions

CREATE ENDPOINT 権限、または sysadmin 固定サーバー ロールのメンバーシップが必要です。Requires CREATE ENDPOINT permission, or membership in the sysadmin fixed server role. 詳細については、「 GRANT (エンドポイントの権限の許可) (Transact-SQL)」を参照してください。For more information, see GRANT Endpoint Permissions (Transact-SQL).

Example

データベース ミラーリング エンドポイントを作成するCreating a database mirroring endpoint

次の例では、データベース ミラーリング エンドポイントを作成します。The following example creates a database mirroring endpoint. 使用可能などのポート番号も有効ですが、このエンドポイントではポート番号 7022 を使用します。The endpoint uses port number 7022, although any available port number would work. エンドポイントは、Kerberos のみを使用する Windows 認証を使用するように構成されます。The endpoint is configured to use Windows Authentication using only Kerberos. ENCRYPTION オプションは既定値以外の SUPPORTED に設定され、暗号化データも暗号化されていないデータもサポートします。The ENCRYPTION option is configured to the nondefault value of SUPPORTED to support encrypted or unencrypted data. エンドポイントは、パートナーおよびミラーリング監視のロールの両方をサポートするように構成されます。The endpoint is being configured to support both the partner and witness roles.

CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (  
       AUTHENTICATION = WINDOWS KERBEROS,  
       ENCRYPTION = SUPPORTED,  
       ROLE=ALL);  
GO  

特定の IPv4 アドレスおよびポートを参照する新しいエンドポイントを作成するCreate a new endpoint pointing to a specific IPv4 address and port

CREATE ENDPOINT ipv4_endpoint_special
STATE = STARTED
AS TCP (
    LISTENER_PORT = 55555, LISTENER_IP = (10.0.75.1)
)
FOR TSQL ();

GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO public; -- Keep existing public permission on default endpoint for demo purpose
GRANT CONNECT ON ENDPOINT::ipv4_endpoint_special
TO login_name;

特定の IPv6 アドレスおよびポートを参照する新しいエンドポイントを作成するCreate a new endpoint pointing to a specific IPv6 address and port

CREATE ENDPOINT ipv6_endpoint_special
STATE = STARTED
AS TCP (
    LISTENER_PORT = 55555, LISTENER_IP = ('::1')
)
FOR TSQL ();

GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO public;
GRANT CONNECT ON ENDPOINT::ipv6_endpoint_special

参照See also

ALTER ENDPOINT (Transact-SQL) ALTER ENDPOINT (Transact-SQL)
暗号化アルゴリズムの選択 Choose an Encryption Algorithm
DROP ENDPOINT (Transact-SQL) DROP ENDPOINT (Transact-SQL)
EVENTDATA (Transact-SQL)EVENTDATA (Transact-SQL)