CREATE ENDPOINT (Transact-SQL)

Crea gli endpoint e ne definisce le proprietà, inclusi i metodi disponibili alle applicazioni client. Per ulteriori informazioni sulle autorizzazioni correlate, vedere GRANT - autorizzazioni per endpoint (Transact-SQL).

La sintassi di CREATE ENDPOINT può essere logicamente suddivisa in due parti:

  • La prima parte inizia con AS e termina prima della clausola FOR.

    In questa parte vengono fornite informazioni specifiche del protocollo di trasporto TCP e viene impostato un numero di porta di attesa per l'endpoint, nonché il metodo di autenticazione dell'endpoint e/o l'elenco degli eventuali indirizzi IP che si desidera escludere dall'accesso all'endpoint.

  • La seconda parte inizia dalla clausola FOR.

    In questa parte viene definito il payload supportato dall'endpoint. I tipi di payload supportati sono Transact-SQL, SERVICE BROKER e DATABASE MIRRORING. In questa parte è inoltre possibile includere informazioni specifiche della lingua.

[!NOTA]

I servizi Web XML nativi (endpoint SOAP/HTTP) sono stati eliminati in SQL Server 2012.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

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 | ( 4-part-ip ) | ( "ip_address_v6" ) ]

) 

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

Argomenti

  • endPointName
    Nome assegnato per l'endpoint in fase di creazione. Utilizzare questo nome in caso di aggiornamento o eliminazione dell'endpoint.

  • AUTHORIZATION login
    Specifica un account di accesso SQL Server o Windows valido a cui viene assegnata la proprietà del nuovo oggetto endpoint creato. Se si omette AUTHORIZATION, per impostazione predefinita il chiamante diventerà il proprietario del nuovo oggetto creato.

    Per assegnare la proprietà tramite AUTHORIZATION, il chiamante deve disporre dell'autorizzazione IMPERSONATE per login.

    Per riassegnare la proprietà, vedere ALTER ENDPOINT (Transact-SQL).

  • STATE = { STARTED | STOPPED | DISABLED }
    Stato dell'endpoint al momento della creazione. Se durante la procedura di creazione non viene specificato uno stato, per impostazione predefinita verrà utilizzato STOPPED.

    • STARTED
      L'endpoint viene avviato ed è attivamente in attesa di connessioni.

    • DISABLED
      L'endpoint è disabilitato. In questo stato, tramite il server vengono attese le richieste della porta, ma anche restituiti errori ai client.

    • STOPPED
      L'endpoint è arrestato. In questo stato, tramite il server non vengono attese le richieste della porta dell'endpoint né viene fornita una risposta ai tentativi di richiesta di utilizzare l'endpoint.

    Per modificare lo stato, utilizzare ALTER ENDPOINT (Transact-SQL).

  • AS { TCP }
    Viene specificato il protocollo di trasporto da utilizzare.

  • FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
    Specifica il tipo di payload.

    Attualmente non sono presenti argomenti specifici del linguaggio Transact-SQL da passare nel parametro <language_specific_arguments>.

Opzione TCP

I seguenti argomenti sono validi solo per l'opzione TCP.

  • LISTENER_PORT **=**listenerPort
    Specifica il numero della porta della quale il protocollo TCP/IP di Service Broker è in attesa delle connessioni. Per convenzione, viene utilizzato il valore 4022 ma sono validi tutti i numeri compresi tra 1024 e 32767.

  • LISTENER_IP = ALL | **(**4-part-ip ) | ( "ip_address_v6" )
    Specifica l'indirizzo IP in corrispondenza del quale verrà eseguita l'attesa dell'endpoint. Il valore predefinito è ALL. Ciò significa che il listener accetterà una connessione su qualsiasi indirizzo IP valido.

    Se si configura il mirroring del database con un indirizzo IP anziché con un nome di dominio completo (ALTER DATABASE SET PARTNER = partner_IP_address o ALTER DATABASE SET WITNESS = witness_IP_address), è necessario specificare LISTENER_IP =IP_address anziché LISTENER_IP=ALL quando si creano gli endpoint del mirroring.

Opzioni SERVICE_BROKER e DATABASE_MIRRORING

Gli argomenti AUTHENTICATION e ENCRYPTION di seguito descritti sono comuni alle opzioni SERVICE_BROKER e DATABASE_MIRRORING.

[!NOTA]

Per le opzioni specifiche per SERVICE_BROKER, vedere "Opzioni di SERVICE_BROKER" di seguito in questo argomento. Per le opzioni specifiche per DATABASE_MIRRORING, vedere "Opzioni di DATABASE_MIRRORING" di seguito in questo argomento.

  • AUTHENTICATION = <authentication_options>
    Specifica i requisiti di autenticazione TCP/IP per le connessioni per questo endpoint. Il valore predefinito è WINDOWS.

    I metodi di autenticazione supportati includono NTLM o Kerberos oppure entrambi.

    Nota importanteImportante

    Tutte le connessioni per il mirroring in un'istanza del server utilizzano un singolo endpoint del mirroring del database. Qualsiasi tentativo di creare un endpoint del mirroring del database aggiuntivo avrà esito negativo.

    <authentication_options> ::=

    • WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      Specifica che l'endpoint deve connettersi utilizzando il protocollo di autenticazione di Windows per autenticare gli endpoint (impostazione predefinita).

      Se si specifica un metodo di autenticazione (NTLM o KERBEROS), il metodo specificato viene utilizzato sempre come protocollo di autenticazione. Il valore predefinito NEGOTIATE imposta l'utilizzo da parte dell'endpoint di uno dei protocolli di negoziazione di Windows (NTLM o Kerberos).

    • CERTIFICATE certificate_name
      Specifica che l'endpoint deve autenticare la connessione tramite il certificato specificato da certificate_name per definire l'identità per l'autorizzazione. L'endpoint sull'altro lato della connessione deve disporre di un certificato con chiave pubblica corrispondente alla chiave privata del certificato specificato.

    • WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
      Specifica che l'endpoint deve tentare di connettersi utilizzando l'autenticazione di Windows e, se il tentativo ha esito negativo, di provare a utilizzare il certificato specificato.

    • CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      Specifica che l'endpoint deve tentare di connettersi utilizzando il certificato specificato e, se il tentativo ha esito negativo, di provare a utilizzare l'autenticazione di Windows.

  • ENCRYPTION = { DISABLED | SUPPORTED | REQUIRED } [ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ]
    Specifica se nel processo viene utilizzata la crittografia. Il valore predefinito è REQUIRED.

    • DISABLED
      Specifica che i dati inviati tramite una connessione non vengano crittografati.

    • SUPPORTED
      Specifica che i dati vengano crittografati solo se per l'endpoint opposto è stato specificato SUPPORTED o REQUIRED.

    • REQUIRED
      Specifica che le connessioni con questo endpoint devono utilizzare la crittografia. Per connettersi a questo endpoint, è necessario impostare l'argomento ENCRYPTION su SUPPORTED o REQUIRED per l'altro endpoint.

    Facoltativamente, è possibile utilizzare l'argomento ALGORITHM per specificare la forma di crittografia utilizzata dall'endpoint, come descritto di seguito.

    • RC4
      Specifica che l'endpoint deve utilizzare l'algoritmo RC4. Questa è l'impostazione predefinita.

      [!NOTA]

      L'algoritmo RC4 è supportato solo per motivi di compatibilità con le versioni precedenti. È possibile crittografare il nuovo materiale utilizzando RC4 o RC4_128 solo quando il livello di compatibilità del database è 90 o 100. (Non consigliato.) Utilizzare un algoritmo più recente, ad esempio uno degli algoritmi AES. In SQL Server 2012 il materiale crittografato utilizzando RC4 o RC4_128 può essere decrittografato in qualsiasi livello di compatibilità.

    • AES
      Specifica che l'endpoint deve utilizzare l'algoritmo AES.

    • AES RC4
      Specifica che due endpoint eseguiranno la negoziazione di un algoritmo di crittografia con l'endpoint corrente, dando la priorità all'algoritmo AES.

    • RC4 AES
      Specifica che due endpoint eseguiranno la negoziazione di un algoritmo di crittografia con l'endpoint corrente, dando la priorità all'algoritmo RC4.

    [!NOTA]

    L'algoritmo RC4 è deprecato. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non utilizzare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata. È consigliabile utilizzare AES.

    Se i due endpoint specificano entrambi gli algoritmi, ma con un ordine diverso, l'algoritmo verrà definito dall'endpoint che accetta la connessione.

Opzioni di SERVICE_BROKER

Gli argomenti seguenti sono specifici dell'opzione SERVICE_BROKER.

  • MESSAGE_FORWARDING = { ENABLED | DISABLED }
    Determina se i messaggi ricevuti da questo endpoint e destinati a servizi ubicati altrove verranno inoltrati.

    • ENABLED
      Inoltra i messaggi se è disponibile un indirizzo di inoltro.

    • DISABLED
      Cancella i messaggi per i servizi ubicati altrove. Questa è l'impostazione predefinita.

  • MESSAGE_FORWARD_SIZE **=**forward_size
    Specifica lo spazio di archiviazione massimo espresso in MB da allocare per l'endpoint durante l'archiviazione dei messaggi da inoltrare.

Opzioni di DATABASE_MIRRORING

L'argomento seguente è specifico dell'opzione DATABASE_MIRRORING.

  • ROLE = { WITNESS | PARTNER | ALL }
    Specifica il ruolo o i ruoli di mirroring del database supportati dall'endpoint.

    • WITNESS
      Consente all'endpoint di assumere un ruolo di controllo del mirroring durante il processo di mirroring.

      [!NOTA]

      Per SQL Server 2005 Express Edition WITNESS è l'unica opzione disponibile.

    • PARTNER
      Consente all'endpoint di assumere un ruolo di partner del mirroring durante il processo di mirroring.

    • ALL
      Consente all'endpoint di assumere i ruoli di controllo e partner del mirroring durante il processo di mirroring.

    Per ulteriori informazioni su questi ruoli, vedere Mirroring del database (SQL Server).

[!NOTA]

Non esiste alcuna porta predefinita per DATABASE_MIRRORING.

Osservazioni

Non è possibile eseguire le istruzioni ENDPOINT DDL all'interno di una transazione utente. Le istruzioni ENDPOINT DDL non avranno esito negativo anche in presenza di una transazione attiva a livello di isolamento dello snapshot che utilizza l'endpoint in fase di modifica.

Le richieste possono essere eseguite su ENDPOINT da:

  • Membri del ruolo predefinito del server sysadmin

  • Il proprietario dell'endpoint

  • Utenti o gruppi a cui è stata concessa l'autorizzazione CONNECT per l'endpoint.

Autorizzazioni

È richiesta l'autorizzazione CREATE ENDPOINT o l'appartenenza al ruolo predefinito del server sysadmin. Per ulteriori informazioni, vedere GRANT - autorizzazioni per endpoint (Transact-SQL).

Esempio

Creazione di un endpoint del mirroring del database

Nell'esempio seguente viene creato un endpoint del mirroring del database. L'endpoint utilizza il numero di porta 7022, anche se qualsiasi numero di porta funzionerebbe correttamente. L'endpoint è configurato in modo da utilizzare solo Kerberos come modalità di autenticazione Windows. L'opzione ENCRYPTION è configurata sul valore non predefinito SUPPORTED per garantire il supporto di dati crittografati e non crittografati. L'endpoint verrà configurato in modo da supportare entrambi i ruoli partner e di controllo del mirroring.

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

Vedere anche

Riferimento

ALTER ENDPOINT (Transact-SQL)

DROP ENDPOINT (Transact-SQL)

EVENTDATA (Transact-SQL)

Concetti

Scelta di un algoritmo di crittografia