ALTER ENDPOINT (Transact-SQL)

既存のエンドポイントを、次の方法で変更できるようにします。

  • 新しいメソッドを既存のエンドポイントに追加する。

  • 既存のメソッドを変更するか、またはエンドポイントから削除する。

  • エンドポイントのプロパティを変更する。

注意

このトピックでは、ALTER ENDPOINT に固有の構文および引数について説明します。CREATE ENDPOINT と ALTER ENDPOINT の両方に共通する引数の説明については、「CREATE ENDPOINT (Transact-SQL)」を参照してください。

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

トピック リンク アイコンTransact-SQL 構文表記規則

構文

ALTER ENDPOINT endPointName [ AUTHORIZATION login ]
[ STATE = { STARTED | STOPPED | DISABLED } ]
[ AS { TCP | HTTP } ( <protocol_specific_items> ) ]
[ FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (
   <language_specific_items>
        ) ]

<AS HTTP_protocol_specific_arguments> ::=
AS HTTP (
  [ [ , ] PATH = 'url' ]
  [ [ , ] PORTS = ( { CLEAR | SSL } [ ,...n ] ) ]
  [ [ , ] SITE = { '*' | '+' | 'webSite' } , ]
  [ [ , ] CLEAR_PORT = clearPort ]
  [ [ , ] SSL_PORT = SSLPort ]
  [ [,] AUTHENTICATION = ( { BASIC | DIGEST | NTLM | KERBEROS | INTEGRATED } [ ,...n ] ) ]
  [ [ , ] 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 (
  [ { ADD WEBMETHOD [ 'namespace' .] 'method_alias' 
    (   NAME = 'database.owner.name'
      [ , SCHEMA = {NONE | STANDARD | DEFAULT } ]
      [ , FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE} ]
    )  
  } [ ,...n ] 
  ]

  [ { ALTER WEBMETHOD [ 'namespace' .] 'method_alias' 
    (   NAME = 'database.owner.name'
      [ , SCHEMA = {NONE | STANDARD | DEFAULT} ]
      [ , FORMAT = { ALL_RESULTS | ROWSETS_ONLY } ]
    )  
  } [ ,...n] 
]
  [ [ , ] { DROP WEBMETHOD [ 'namespace' .] 'method_alias' } [ ,...n ] ]
  [ [ , ] BATCHES = { ENABLED | DISABLED } ]
  [ [ , ] WSDL = { NONE | DEFAULT | 'sp_name' } ]
  [ [ , ] SESSIONS = { ENABLED | DISABLED } ]
  [ [ , ] LOGIN_TYPE = { MIXED | WINDOWS } ]
  [ [ , ] SESSION_TIMEOUT = timeoutInterval ]
  [ [ , ] 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 = forwardSize
)

<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 }
)

引数

注意

次の引数は、ALTER ENDPOINT に固有の引数です。その他の引数の説明については、「CREATE ENDPOINT (Transact-SQL)」を参照してください。

  • ADD WEBMETHOD
    新しいメソッド エンドポイントを追加します。

    重要な注意事項重要

    ADD WEBMETHOD を使用してメソッドを公開する際には、複数の SQL Server データベースが同じ HTTP エンドポイントによって処理される場合に名前の重複が発生しないようにする必要があります。名前の重複を回避するには、登録済みのドメイン名の URL を、名前空間のパスの一部として追加することをお勧めします。

  • ALTER WEBMETHOD
    既存のメソッド エンドポイントの定義を変更します。

  • AS { TCP | HTTP }
    ALTER ENDPOINT ではトランスポート プロトコルを変更できません。

  • AUTHORIZATIONlogin
    ALTER ENDPOINT では AUTHORIZATION オプションを使用できません。エンドポイントの作成時にのみ所有者を割り当てることができます。

  • DROP WEBMETHOD
    既存のメソッド エンドポイントを削除します。

  • FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
    ALTER ENDPOINT ではペイロードの種類を変更できません。

説明

ALTER ENDPOINT を使用する場合、更新するパラメーターのみを指定します。既存のエンドポイントのすべてのプロパティは、明示的に変更しない限り変更されません。

ENDPOINT DDL ステートメントは、ユーザー トランザクション内部では実行できません。

エンドポイントに対して使用する暗号化アルゴリズムの選択については、「暗号化アルゴリズムの選択」を参照してください。

注意

RC4 は比較的弱いアルゴリズムで、AES は比較的強いアルゴリズムです。しかし、AES は RC4 に比べて非常に処理が遅くなります。速度よりもセキュリティを優先する場合は、AES を使用することをお勧めします。

権限

固定サーバー ロール sysadmin のメンバーであるか、そのエンドポイントの所有者であるか、または ALTER ANY ENDPOINT 権限が許可されている必要があります。

既存のエンドポイントの所有権を変更するには、ALTER AUTHORIZATION ステートメントを使用する必要があります。詳細については、「ALTER AUTHORIZATION (Transact-SQL)」を参照してください。

詳細については、「GRANT (エンドポイントの権限の許可) (Transact-SQL)」を参照してください。

A. 新しいメソッドを既存のエンドポイントに追加する

次の例では、新しいメソッドを、以前に作成されたエンドポイント sql_endpoint に追加します。

ALTER ENDPOINT sql_endpoint
FOR SOAP
(
  ADD WEBMETHOD 'SayHello' (name='AdventureWorks2008R2.dbo.SayHello')
);

B. RAW SOAP モードで動作する新しいメソッドを追加する

次の例では、新しい Web メソッド ReportUsageStats を、RAW モードでの動作を表す FORMAT=NONE の指定と共に追加し、ストアド プロシージャの結果を手を加えずに SOAP クライアントに配信します。詳細については、「CREATE ENDPOINT (Transact-SQL)」の FORMAT オプションの説明を参照してください。

ALTER ENDPOINT sql_endpoint
FOR SOAP
(
  ADD WEBMETHOD 'ReportUsageStats' (name='myDatabase.dbo.sp_reportserverstats', FORMAT=NONE)
);