Creare un endpoint del mirroring del database per l'autenticazione Windows (Transact-SQL)

Si applica a:SQL Server

Questo argomento illustra come creare un endpoint del mirroring del database che usa l'autenticazione di Windows in SQL Server tramite Transact-SQL. Per supportare il mirroring del database o i gruppi di disponibilità Always On ogni istanza di SQL Server richiede un endpoint del mirroring del database. In un'istanza del server può essere incluso uno solo di questo tipo di endpoint, che a sua volta dispone di una sola porta. Un endpoint del mirroring del database può utilizzare qualsiasi porta disponibile nel sistema locale al momento della creazione dell'endpoint. Tutte le sessioni di mirroring del database in un'istanza del server sono in attesa su quella porta, che viene utilizzata anche per tutte le connessioni in ingresso per il mirroring del database.

Importante

Se un endpoint del mirroring del database è presente e già in uso, è consigliabile utilizzare quello. L'eliminazione di un endpoint in uso determina la chiusura delle sessioni esistenti.

Contenuto dell'articolo

Prima di iniziare

Sicurezza

I metodi di autenticazione e crittografia dell'istanza del server sono stabiliti dall'amministratore di sistema.

Avviso

L'algoritmo RC4 è deprecato. Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. È consigliabile utilizzare AES.

Autorizzazioni

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

Utilizzo di Transact-SQL

Per creare un endpoint del mirroring del database in cui viene utilizzata l'autenticazione di Windows

  1. Connettersi all'istanza di SQL Server in cui si desidera creare un endpoint del mirroring del database.

  2. Dalla barra Standard fare clic su Nuova query.

  3. Per determinare se esiste già un endpoint del mirroring del database, utilizzare l'istruzione seguente:

    SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;   
    

    Importante

    Se per l'istanza del server esiste già un endpoint del mirroring, utilizzarlo per tutte le altre sessioni stabilite nell'istanza del server.

  4. Per usare Transact-SQL per creare un endpoint utilizzabile con l'autenticazione di Windows, usare un'istruzione CREATE ENDPOINT. Il formato generale dell'istruzione è il seguente:

    CREATE ENDPOINT *\<endpointName>*  
    
    STATE=STARTED  
    
    AS TCP ( LISTENER_PORT = *\<listenerPortList>* )  
    
    FOR DATABASE_MIRRORING  
    
    (  
    
    [ AUTHENTICATION = **WINDOWS** [ *\<authorizationMethod>* ]  
    
    ]  
    
    [ [**,**] ENCRYPTION = **REQUIRED**  
    
    [ ALGORITHM { *\<algorithm>* } ]  
    
    ]  
    
    [**,**] ROLE = *\<role>*  
    
    )  
    

    Dove:

    • <endpointName> è un nome univoco per l'endpoint del mirroring del database dell'istanza del server.

    • STARTED indica che l'endpoint deve essere avviato e deve rimanere in attesa delle connessioni. Lo stato di un endpoint del mirroring del database creato è in genere STARTED. In alternativa, è possibile avviare una sessione nello stato STOPPED (impostazione predefinita) o DISABLED.

    • <listenerPortList> è un solo numero di porta (nnnn) su cui il server deve attendere i messaggi di mirroring del database. È consentito solo il protocollo TCP. Tutti gli altri protocolli restituiranno un errore.

      È possibile utilizzare un numero di porta una sola volta per ciascun computer. Un endpoint del mirroring del database può utilizzare qualsiasi porta disponibile nel sistema locale al momento della creazione dell'endpoint. Per identificare le porte attualmente utilizzate dagli endpoint TCP nel sistema, utilizzare l'istruzione Transact-SQL seguente:

      SELECT name, port FROM sys.tcp_endpoints;  
      

      Importante

      In ogni istanza del server è necessaria un'unica porta di attesa univoca.

    • Per l'autenticazione di Windows, l'opzione AUTHENTICATION è facoltativa, a meno che non si desideri che l'endpoint utilizzi solo NTLM o Kerberos per autenticare connessioni. <authorizationMethod> specifica il metodo usato per autenticare le connessioni come NTLM, KERBEROS o NEGOTIATE. Con il metodo predefinito NEGOTIATE l'endpoint utilizzerà il protocollo di negoziazione di Windows per scegliere tra NTLM e Kerberos. La negoziazione consente di utilizzare le connessioni con o senza autenticazione, a seconda del livello di autenticazione dell'endpoint opposto.

      Nota

      Per usare l'autenticazione Kerberos per la comunicazione tra endpoint del gruppo di disponibilità (AG), registrare un nome dell'entità servizio per le connessioni Kerberos per gli endpoint del mirroring del database usati dal gruppo di disponibilità.

    • Per impostazione predefinita, ENCRYPTION è impostato su REQUIRED, pertanto verrà utilizzata la crittografia per tutte le connessioni a questo endpoint. È tuttavia possibile disabilitare la crittografia o renderla facoltativa in un endpoint. Sono disponibili le alternative seguenti:

      Valore Definizione
      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 i dati inviati tramite una connessione devono essere crittografati.

      Se è necessaria la crittografia per un endpoint, ENCRYPTION deve essere impostato su SUPPORTED o REQUIRED nell'altro endpoint.

    • <algorithm> consente di specificare gli standard di crittografia per l'endpoint. Il valore di <algorithm> può essere uno degli algoritmi o delle combinazioni di algoritmi seguenti: RC4, AES, AES RC4 o RC4 AES.

      L'algoritmo AES per l'endpoint del mirroring del database usa una lunghezza della chiave a 128 bit.

      AES RC4 indica che questo endpoint negozierà l'algoritmo di crittografia, dando la preferenza a quello AES. RC4 AES indica che questo endpoint negozierà l'algoritmo di crittografia, dando la preferenza all'algoritmo RC4. Se i due endpoint specificano entrambi gli algoritmi, ma con un ordine diverso, l'algoritmo verrà definito dall'endpoint che accetta la connessione. Fornire lo stesso algoritmo in modo esplicito per evitare errori di connessione tra server diversi.

      Avviso

      L'algoritmo RC4 è deprecato. Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. È consigliabile utilizzare AES.

    • <role> definisce il ruolo o i ruoli che il server può eseguire. Il valore di ROLE deve essere specificato. Tuttavia, il ruolo dell'endpoint è rilevante solo per il mirroring del database. Per i gruppi di disponibilità Always On, il ruolo dell'endpoint viene ignorato.

      Per consentire a un'istanza del server di utilizzare un ruolo per una sessione di mirroring del database e un altro ruolo per un'altra sessione, specificare ROLE=ALL. Per limitare un'istanza del server in modo che funga da partner o da server di controllo del mirroring, specificare rispettivamente ROLE = PARTNER o ROLE = WITNESS.

      Nota

      Per altre informazioni sulle opzioni del mirroring del database per le diverse edizioni di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2016.

    Per una descrizione completa della sintassi di CREATE ENDPOINT, vedere CREATE ENDPOINT (Transact-SQL).

    Nota

    Per modificare un endpoint esistente, usare ALTER ENDPOINT (Transact-SQL).

Esempio: Creazione di endpoint per supportare il mirroring del database (Transact-SQL)

Nell'esempio seguente si creano endpoint del mirroring del database per le istanze del server predefinite in tre sistemi di computer distinti:

Ruolo dell'istanza del server Nome del computer host
Partner (inizialmente nel ruolo principale) SQLHOST01\.
Partner (inizialmente nel ruolo mirror) SQLHOST02\.
Controllo SQLHOST03\.

Nell'esempio tutti e tre gli endpoint utilizzano la porta numero 7022, anche se qualunque numero di porta disponibile sarebbe utilizzabile. L'opzione AUTHENTICATION non è necessaria, in quanto gli endpoint utilizzano il tipo predefinito, autenticazione di Windows. L'opzione ENCRYPTION è anch'essa superflua, in quanto gli endpoint sono tutti progettati per negoziare il metodo di autenticazione per una connessione, che rappresenta il comportamento predefinito per autenticazione di Windows. Inoltre, tutti gli endpoint richiedono la crittografia, che rappresenta il comportamento predefinito.

Ogni istanza del server è limitata a fungere da partner o da server di controllo e l'endpoint di ogni server specifica espressamente il ruolo (ROLE=PARTNER o ROLE=WITNESS).

Importante

Ogni istanza del server può includere un solo endpoint. Pertanto, se si desidera che un'istanza del server sia partner in alcune sessioni e server di controllo in altre, specificare ROLE=ALL.

--Endpoint for initial principal server instance, which  
--is the only server instance running on SQLHOST01.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for initial mirror server instance, which  
--is the only server instance running on SQLHOST02.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for witness server instance, which  
--is the only server instance running on SQLHOST03.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=WITNESS);  
GO  

Attività correlate

Per configurare un endpoint del mirroring del database

Per visualizzare informazioni sull'endpoint del mirroring del database

Vedi anche

ALTER ENDPOINT (Transact-SQL)
Scelta di un algoritmo di crittografia
CREATE ENDPOINT (Transact-SQL)
Specificare un indirizzo di rete del server (Mirroring del database)
Esempio: Configurazione del mirroring del database tramite l'autenticazione di Windows (Transact-SQL)
Endpoint del mirroring del database (SQL Server)