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 o HTTP) 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 SOAP, Transact-SQL, SERVICE BROKER e DATABASE MIRRORING. In questa parte è inoltre possibile includere informazioni specifiche della lingua. Ad esempio, in caso di utilizzo delle richieste HTTP SOAP, è possibile definire le procedure che si desidera esporre nell'endpoint come metodi Web. Per ogni metodo Web è quindi possibile definire una stored procedure SQL Server corrispondente oppure una funzione definita dall'utente alla quale eseguire il mapping. Un'applicazione client potrà quindi inviare le richieste HTTP SOAP che richiamano questi metodi nell'endpoint. È inoltre possibile fornire informazioni aggiuntive sulla configurazione SOAP, ad esempio:

    • Se consentire richieste di query ad hoc

    • Se restituire lo schema XSD come set di risultati

    • Il contesto del database in cui vengono eseguiti i metodi richiesti

    • Lo spazio dei nomi per l'endpoint

    • La modalità di gestione dei caratteri non validi nell'XML nei risultati

[!NOTA]

In SQL Server 2008 i Servizi Web XML nativi (endpoint SOAP/HTTP) sono obsoleti. Per ulteriori informazioni, vedere Servizi Web XML nativi: obsoleti in SQL Server 2008.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

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 è disattivato. In questo stato il server non attende le richieste della porta dell'endpoint, né risponde ai tentativi di richiesta di utilizzare l'endpoint.

    • STOPPED
      L'endpoint è interrotto. In questo stato il server attende le richieste della porta, ma restituisce errori ai client.

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

  • AS { HTTP | TCP }
    Specifica il protocollo di trasporto da utilizzare.

  • FOR { SOAP | 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>.

    In SQL Server 2008 i Servizi Web XML nativi (endpoint SOAP/HTTP) sono obsoleti. Per ulteriori informazioni, vedere Servizi Web XML nativi: obsoleti in SQL Server 2008.

Opzione HTTP

Le informazioni riportate di seguito sono valide solo per l'opzione HTTP.

  • PATH = 'url'
    Specifica il percorso dell'URL che identifica la posizione dell'endpoint nel computer host definito dall'argomento SITE. PATH è un partizionamento logico dello spazio dei nomi URL utilizzato dal listener per eseguire il corretto routing delle richieste. PATH deve far parte dell'URL utilizzato dal client per inviare le richieste HTTP SOAP a un'istanza di SQL Server. Ad esempio, nell'URL https://ServerName/SqlServerName è il computer host specificato dall'argomento SITE e /Sql è l'URL specificato dall'argomento PATH.

  • AUTHENTICATION = ( { BASIC | DIGEST | NTLM | KERBEROS | INTEGRATED } [ ,...n ] )
    Specifica il tipo di autenticazione utilizzato per autenticare gli utenti che accedono a un'istanza di SQL Server. È possibile specificare BASIC, DIGEST, NTLM, KERBEROS o INTEGRATED oppure una combinazione di questi valori separati da una virgola (,). Per ulteriori informazioni, vedere Tipi di autenticazione dell'endpoint.

  • PORTS**=(** { CLEAR | SSL} [ ,... n ] )
    Specifica uno o più tipi di porta di attesa associati all'endpoint. È possibile specificare i tipi CLEAR e SSL contemporaneamente. Se si specifica CLEAR, le richieste in arrivo devono utilizzare il protocollo HTTP. Se invece si specifica SSL, le richieste in arrivo devono essere di tipo HTTP protetto (https://).

  • [ SITE = { ' * ' | ' + ' | 'webSite' } ]
    Specifica il nome del computer host. Se SITE viene omesso, il valore predefinito è l'asterisco. Se è stata eseguita la stored procedure sp_reserve_http_namespace, passare <hostpart> alla parola chiave SITE. Ad esempio, se è stata eseguita la stored procedure sp_reserve_http_namespace N'http://MyServer:80/sql', specificare SITE='MyServer' nell'istruzione CREATE ENDPOINT.

    • * (asterisco)
      Implica che un'operazione di attesa viene applicata a tutti i possibili nomi host altrimenti non esplicitamente riservati del computer.

    • + (segno di addizione)
      Implica che un'operazione di attesa viene applicata a tutti i possibili nomi host del computer.

    • webSite
      Nome host specifico del computer.

  • [ CLEAR_PORT **=**clearPort ]
    Specifica il numero di porta non protetta. Se PORTS = (CLEAR), clearPort specifica il numero di porta non protetta. Il numero di porta predefinito è 80.

  • [ SSL_PORT**=**SSLPort ]
    Specifica il numero di porta SSL. Se PORTS = (SSL), SSLPort specifica il numero di porta SSL. Il numero di porta SSL predefinito è 443.

  • [ AUTH_REALM = { 'realm' | NONE } ]
    Se AUTHENTICATION = DIGEST, specifica l'hint restituito al client che ha inviato la richiesta SOAP all'endpoint come parte della richiesta di autenticazione HTTP. Il valore predefinito è NONE.

  • [ DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
    Se AUTHENTICATION = BASIC, specifica il dominio di accesso predefinito. Il valore predefinito è NONE.

  • [ COMPRESSION = { ENABLED | DISABLED } ]
    Se impostato su ENABLED, SQL Server applicherà le richieste in cui è supportata la codifica gzip e restituirà risposte compresse. In altre parole, se una richiesta in arrivo include un'intestazione HTTP in cui è specificato GZIP come codifica supportata valida, il server restituisce la risposta codificata in base a gzip. L'impostazione predefinita è DISABLED.

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.

Argomenti SOAP

Gli argomenti seguenti sono specifici dell'opzione SOAP.

[!NOTA]

In SQL Server 2008 i Servizi Web XML nativi (endpoint SOAP/HTTP) sono obsoleti. Per ulteriori informazioni, vedere Servizi Web XML nativi: obsoleti in SQL Server 2008.

  • [ WEBMETHOD [ 'namespace' .] 'method_alias' ]
    Specifica un metodo in base al quale è possibile inviare richieste HTTP SOAP a un endpoint. Ogni clausola WEBMETHOD descrive un metodo. È tuttavia possibile esporre più metodi per un endpoint specifico. Se namespace viene omesso, viene utilizzato lo spazio dei nomi dell'endpoint.

    È possibile creare un endpoint senza metodi e quindi aggiungere i metodi tramite ALTER ENDPOINT.

    Nota importanteImportante

    Se si utilizza WEBMETHOD per esporre i metodi, è necessario assicurarsi che non siano presenti nomi duplicati quando più database di SQL Server vengono gestiti dallo stesso endpoint HTTP. Per evitare ciò, aggiungere l'URL del nome di dominio registrato nel percorso dello spazio dei nomi.

  • NAME ='database.schema.name'
    Specifica il nome di una stored procedure o una funzione definita dall'utente corrispondente al metodo SOAP specificato in WEBMETHOD. database**.schema.name deve essere un nome in tre parti conforme alle regole valide per gli identificatori. Se database.schema.**name non esiste, viene restituito un avviso, ma l'operazione DDL ha esito positivo.

  • [ SCHEMA = { NONE | STANDARD | DEFAULT } ]
    Questa opzione è utilizzabile con la clausola WEBMETHOD. Determina se verrà restituito lo schema XSD inline per il metodo Web corrente nelle risposte SOAP.

    • NONE
      Lo schema XSD non viene restituito per i risultati dell'istruzione SELECT inviati tramite SOAP.

    • STANDARD
      Lo schema XSD viene restituito per i risultati dell'istruzione SELECT inviati tramite SOAP.

    • DEFAULT
      Imposta come predefinita l'opzione SCHEMA dell'endpoint.

    Se non si specifica alcuno schema o questa opzione è impostata su DEFAULT, l'opzione SCHEMA specificata per l'endpoint determina se viene restituita l'opzione SCHEMA per il risultato del metodo.

    Per recuperare uno schema per il risultato di una query SELECT che utilizza l'opzione FOR XML, è necessario specificare l'opzione XMLSCHEMA nella query indipendentemente dall'impostazione dell'opzione SCHEMA effettuata in questo passaggio.

  • [ FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
    Specificare se assieme al set di risultati vengono restituiti un conteggio delle righe, i messaggi di errore e gli avvisi. L'impostazione predefinita è ALL_RESULTS.

    • ALL_RESULTS
      Restituisce un set di risultati, un conteggio delle righe, i messaggi di errore e gli avvisi nella risposta SOAP.

    • ROWSETS_ONLY
      Restituisce solo i set di risultati.

      Utilizzare questa opzione con le applicazioni client che utilizzano il generatore di classi proxy del servizio Web di Visual Studio 2005 se si desidera che i risultati vengano restituiti come un singolo set di dati (oggetto System.Data.Dataset) e non sotto forma di una matrice Object.

    • NONE
      Disattiva la restituzione di un markup specifico di SOAP nella risposta del server.

      Questa opzione può essere utilizzata come meccanismo per supportare le applicazioni che includono una stored procedure che prevede la restituzione della risposta in modalità raw da parte del server. Quando si specifica questa opzione, l'applicazione è responsabile della restituzione di codice XML nel formato corretto. Questa funzione può essere utilizzata per controllare la risposta in svariate situazioni, ad esempio per creare una stored procedure che restituisce un requisito del servizio Web. L'opzione FORMAT=NONE è caratterizzata dalle condizioni di utilizzo descritte di seguito:

      • È necessario implementare il metodo mediante una stored procedure senza parametri di output. Le funzioni definite dall'utente non sono consentite con questo formato di risposta.

        È necessario che la query sia una query FOR XML a istruzione singola (questo formato di risposta non supporta più istruzioni FOR XML) oppure l'output deve essere composto da un'unica colonna denominata XML_F52E2B61-18A1-11d1-B105-00805F49916B e di tipo nvarchar.

  • BATCHES = { ENABLED | DISABLED }
    Specifica se le richieste SQL ad hoc sono supportate nell'endpoint. Il valore predefinito è DISABLED.

    ENABLED consente l'invio delle richieste SOAP di query ad hoc che utilizzano il metodo sqlbatch a questo endpoint.

    Se i batch sono abilitati, è possibile eseguire a livello di endpoint le richieste SQL ad hoc tramite la chiamata al metodo sql:sqlbatch. Questo metodo consente inoltre di esporre funzionalità di query con parametri. Supporta pertanto un elenco facoltativo di elementi SqlParameter che descrivono i metadati e i valori dei parametri della query specificata.

    All'interno della query è possibile incorporare i nomi di parametro che iniziano con il simbolo di chiocciola (@). È necessario fornire nomi di parametro corrispondenti. In caso contrario, per la richiesta verrà restituito un errore.

  • LOGIN_TYPE = { MIXED | WINDOWS }
    Specifica la modalità di autenticazione di SQL Server per l'endpoint. Se LOGIN_TYPE viene omesso, il valore predefinito è WINDOWS.

    LOGIN_TYPE può essere utilizzato solo per limitare ulteriormente la modalità di autenticazione per gli endpoint basati sulla modalità di autenticazione globale del server selezionata durante l'installazione dell'istanza di SQL Server.

    • MIXED
      Consente di utilizzare l'autenticazione di SQL Server o l'autenticazione di Windows per autenticare gli utenti dell'endpoint.

      Se si specifica MIXED e il server è stato installato con la modalità di autenticazione di Windows, viene restituito un errore.

      Se si imposta MIXED, l'endpoint supporterà l'autenticazione di SQL Server e dovrà essere configurato in modo da utilizzare la porta SSL (Secure Sockets Layer).

    • WINDOWS
      Consente di utilizzare solo l'autenticazione di Windows per autenticare gli utenti dell'endpoint.

  • WSDL = { NONE | DEFAULT | 'sp_name' }
    Indica se questo endpoint supporta la generazione di documenti WSDL. Se impostato su NONE, non viene generata o restituita alcuna risposta WSDL per le query WSDL sottomesse all'endpoint. Se impostato su DEFAULT, viene generata e restituita una risposta WSDL predefinita per le query WSDL sottomesse all'endpoint. In situazioni eccezionali, ad esempio in caso di implementazione del supporto WSDL personalizzato per l'endpoint, è inoltre possibile specificare la stored procedure in base al nome che restituirà un documento WSDL modificato.

  • [ SESSIONS = { ENABLED | DISABLED } ]
    Specifica se l'istanza di SQL Server supporta le sessioni. Se impostato su ENABLED, SQL Server supporta le sessioni e pertanto più coppie di messaggi di richiesta/risposta SOAP possono essere identificate come parte di una singola sessione SOAP. Il valore predefinito è DISABLED.

  • SESSION_TIMEOUT **=**timeoutInterval
    Specifica il tempo in secondi (come valore di tipo integer) disponibile prima della scadenza di una sessione SOAP nel server quando non vengono ricevute altre richieste, Il valore predefinito è 60 secondi e sostituisce il valore di timeout specificato nell'intestazione di sessione SOAP.

    ovvero il timeout inizializzato quando il server termina di inviare un messaggio di risposta SOAP al client. Se l'intervallo di timeout trascorre prima della ricezione di un'altra richiesta SOAP con lo stesso ID di sessione specificato nella relativa intestazione, la sessione verrà terminata nel server.

  • [ DATABASE = { 'database_name' | DEFAULT } ]
    Specifica il database nel contesto del quale viene eseguita l'operazione richiesta. Se database_name viene omesso o se si specifica DEFAULT, verrà utilizzato il database predefinito per l'accesso.

  • [ NAMESPACE = { 'namespace' | DEFAULT } ]
    Specifica lo spazio dei nomi per l'endpoint. Se namespace viene omesso oppure se si specifica DEFAULT, lo spazio dei nomi utilizzato è http://tempuri.org. È possibile sovrascrivere lo spazio dei nomi predefinito se si imposta un metodo specifico tramite WEBMETHOD **'namespace'**namespace.

  • [ SCHEMA = { NONE | STANDARD } ]
    Specifica se viene restituito uno schema XSD dall'endpoint quando vengono inviati i risultati SOAP.

    • NONE
      Omette lo schema inline dalle risposte SOAP.

    • STANDARD
      Include lo schema inline nelle risposte dell'endpoint.

    [!NOTA]

    Per il caricamento dei risultati SOAP negli oggetti System.Data.DataSet quando si utilizza Visual Studio 2005, sono necessari schemi inline. È pertanto necessario specificare STANDARD.

  • [CHARACTER_SET = { SQL | XML } ]
    Definisce il funzionamento quando il risultato di un'operazione include caratteri non validi nell'XML. Il valore predefinito è XML.

    • SQL
      Codifica i caratteri non validi come riferimenti di caratteri e quindi li restituisce nel risultato. In questo caso è possibile che un parser XML rifiuti il codice XML restituito come non valido.

    • XML
      Codifica i caratteri in base alla specifica XML. Per tutti i caratteri non consentiti nel set di caratteri XML verrà restituito al client un errore di XML non valido.

  • HEADER_LIMIT
    Specifica la dimensione massima, espressa in byte, della sezione dell'intestazione nella busta SOAP. Se le intestazioni SOAP non sono comprese in questa dimensione, il server genera un errore di analisi. Se non specificato, verrà utilizzato il valore predefinito di 8 KB (8192 byte).

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. Per ulteriori informazioni su questi metodi, vedere Tipi di autenticazione dell'endpoint.

    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 (impostazione predefinita).

    • 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 è obsoleto. Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non utilizzare questa caratteristica 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 Panoramica del mirroring del database.

[!NOTA]

Per l'opzione DATABASE_MIRRORING, come protocollo di trasporto è possibile utilizzare solo TCP e non HTTP. 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).

Esempi

A. Creazione di un endpoint da utilizzare per le richieste SOAP

Nell'esempio seguente viene creato un endpoint denominato sql_endpoint con due metodi, ovvero GetSqlInfo e DayAsNumber. Questi sono i metodi in base ai quali un client può inviare le richieste SOAP all'endpoint.

Per ogni metodo, l'impostazione predefinita per l'opzione FORMAT è ALL_RESULTS. La risposta SOAP per la richiesta del metodo includerà pertanto i messaggi di errore, gli avvisi e le informazioni relative al conteggio delle righe.

Di seguito sono riportate informazioni sulle impostazioni specifiche di SOAP:

  • L'opzione SCHEMA viene impostata su STANDARD per l'endpoint. Nelle risposte SOAP verranno pertanto restituiti gli schemi inline per impostazione predefinita.

  • L'opzione WSDL viene impostata su DEFAULT. Se un client richiede una risposta WSDL da questo endpoint (https://Server/sql?wsdl), il server genererà e restituirà pertanto una risposta WSDL per il client.

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

È possibile eseguire una query sulla vista del catalogo per cercare informazioni sull'endpoint creato, come illustrato negli esempi seguenti. È inoltre possibile eseguire un join di queste viste del catalogo per recuperare i dati desiderati.

Eseguire una query su sys.endpoints per recuperare tutte le informazioni sugli endpoint nel sistema, ovvero il nome, l'ID dell'endpoint, l'ID del server principale proprietario dell'endpoint e altre proprietà dell'endpoint.

SELECT *
FROM sys.endpoints;

È possibile eseguire una query su sys.http_endpoints per recuperare informazioni HTTP dettagliate sull'endpoint, ad esempio SITE, URL, il meccanismo AUTHENTICATION e altre informazioni HTTP specifiche.

SELECT *
FROM sys.http_endpoints;

Per recuperare le informazioni specifiche di SOAP relative all'endpoint, eseguire una query su sys.soap_endpoints.

SELECT * 
FROM sys.soap_endpoints;

Per recuperare i metodi SOAP definiti nell'endpoint, eseguire una query su sys.endpoint_webmethods.

SELECT *
FROM sys.endpoint_webmethods;

B. 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

C. Specifica di una porta

Quando si crea un endpoint SOAP in un sistema Windows Server a partire da Windows Server 2003, se la combinazione del percorso (URL) e della porta viene utilizzato da IIS, l'istruzione CREATE ENDPOINT non riuscirà.

In Windows XP potrebbe essere necessario interrompere IIS per consentire il funzionamento degli endpoint 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/' );