Condividi tramite


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

Questo argomento descrive come creare un endpoint di mirroring del database che usa l'autenticazione di Windows in SQL Server 2014 usando Transact-SQL. Per supportare il mirroring del database o Always On gruppi di disponibilità ogni istanza di SQL Server richiede un endpoint di 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.

Importante

L'algoritmo RC4 è deprecato. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non usare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le 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).

Uso 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 creare un endpoint utilizzabile con l'autenticazione di Windows, eseguire un'istruzione Transact-SQL 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

    [ ALGORITMO { <algoritmo> } ]

    ]

    [,] 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.

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

      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.

      Nota

      L'algoritmo RC4 è deprecato. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Non usare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le 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 Always On gruppi di disponibilità, 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 di mirroring del database per diverse edizioni di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2014.

    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

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