Condividi tramite


Sicurezza del trasporto per il mirroring del database e gruppi di disponibilità AlwaysOn (SQL Server)

La sicurezza del trasporto prevede l'autenticazione e, facoltativamente, la crittografia dei messaggi scambiati tra i database. Per il mirroring del database e i gruppi di disponibilità AlwaysOn, l'autenticazione e la crittografia vengono configurate nell'endpoint del mirroring del database. Per un'introduzione agli endpoint di mirroring del database, vedere Endpoint del mirroring del database (SQL Server).

Autenticazione

L'autenticazione è il processo di verifica che un utente sia l'utente che dichiara di essere. Le connessioni tra gli endpoint del mirroring del database richiedono l'autenticazione. Le richieste di connessione da un partner o da un testimone, se ce ne sono, devono essere autenticate.

Il tipo di autenticazione usato da un'istanza del server per il mirroring del database o i gruppi di disponibilità AlwaysOn è una proprietà dell'endpoint del mirroring del database. Sono disponibili due tipi di sicurezza della trasmissione per gli endpoint del mirroring del database: l'Autenticazione di Windows (SSPI) e l'autenticazione basata su certificati.

Autenticazione di Windows

In Autenticazione di Windows ogni istanza del server accede all'altro lato usando le credenziali di Windows dell'account utente di Windows in cui è in esecuzione il processo. L'autenticazione di Windows potrebbe richiedere una configurazione manuale degli account di accesso, come indicato di seguito:

  • Se le istanze di SQL Server vengono eseguite come servizi con lo stesso account di dominio, non è necessaria alcuna configurazione aggiuntiva.

  • Se le istanze di SQL Server vengono eseguite come servizi con account di dominio diversi (negli stessi domini o attendibili), l'account di accesso di ogni account deve essere creato nel master in ognuna delle altre istanze del server e all'account di accesso devono essere concesse autorizzazioni CONNECT per l'endpoint.

  • Se le istanze di SQL Server vengono eseguite come account del servizio di rete, l'account di accesso di ogni account computer host (DomainName ComputerName**\**$) deve essere creato nel master in ognuno degli altri server e all'account di accesso devono essere concesse le autorizzazioni CONNECT per l'endpoint. Ciò è dovuto al fatto che un'istanza del server in esecuzione con l'account del servizio di rete esegue l'autenticazione usando l'account di dominio del computer host.

Annotazioni

Per un esempio di configurazione di una sessione di mirroring del database tramite l'autenticazione di Windows, vedere Esempio: Configurazione del mirroring del database tramite l'autenticazione di Windows (Transact-SQL).

Certificati

In alcune situazioni, ad esempio quando le istanze del server non si trovano in domini attendibili o quando SQL Server è in esecuzione come servizio locale, l'autenticazione di Windows non è disponibile. In questi casi, anziché le credenziali utente, i certificati sono necessari per autenticare le richieste di connessione. L'endpoint del mirroring di ogni istanza del server deve essere configurato con il proprio certificato creato in locale.

Il metodo di crittografia viene stabilito quando viene creato il certificato. Per ulteriori informazioni, consultare Consenti a un endpoint di mirroring del database di usare certificati per le connessioni in uscita (Transact-SQL). Gestire attentamente i certificati usati.

Un'istanza del server usa la chiave privata del proprio certificato per stabilire la propria identità durante la configurazione di una connessione. L'istanza del server che riceve la richiesta di connessione usa la chiave pubblica del certificato del mittente per autenticare l'identità del mittente. Si considerino ad esempio due istanze del server, Server_A e Server_B. Server_A usa la chiave privata per crittografare l'intestazione di connessione prima di inviare una richiesta di connessione a Server_B. Server_B usa la chiave pubblica del certificato di Server_A per decrittografare l'intestazione di connessione. Se l'intestazione decrittografata è corretta, Server_B sa che l'intestazione è stata crittografata da Server_A e la connessione viene autenticata. Se l'intestazione decrittografata non è corretta, Server_B sa che la richiesta di connessione è inautentica e rifiuta la connessione.

Crittografia dei dati

Per impostazione predefinita, un endpoint del mirroring del database richiede la crittografia dei dati inviati tramite connessioni di mirroring. In questo caso, l'endpoint può connettersi solo agli endpoint che usano anche la crittografia. A meno che non sia possibile garantire che la rete sia sicura, è consigliabile richiedere la crittografia per le connessioni di mirroring del database. Tuttavia, è possibile disabilitare la crittografia o renderla supportata, ma non necessaria. Se la crittografia è disabilitata, i dati non vengono mai crittografati e l'endpoint non può connettersi a un endpoint che richiede la crittografia. Se la crittografia è supportata, i dati vengono crittografati solo se l'endpoint opposto supporta o richiede la crittografia.

Annotazioni

Gli endpoint di mirroring creati da SQL Server Management Studio vengono creati con la crittografia necessaria o disabilitata. Per modificare l'impostazione di crittografia su SUPPORTED, usare l'istruzione ALTER ENDPOINT Transact-SQL. Per altre informazioni, vedere ALTER ENDPOINT (Transact-SQL).

Facoltativamente, è possibile controllare gli algoritmi di crittografia che possono essere usati da un endpoint specificando uno dei valori seguenti per l'opzione ALGORITHM in un'istruzione CREATE ENDPOINT o in un'istruzione ALTER ENDPOINT:

Valore ALGORITHM Descrizione
RC4 Specifica che l'endpoint deve usare l'algoritmo RC4. Si tratta dell'impostazione predefinita.

Nota: l'algoritmo RC4 è deprecato. Questa funzionalità verrà rimossa in una versione futura 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 usare AES.
AES Specifica che l'endpoint deve usare l'algoritmo AES.
AES RC4 Specifica che i due endpoint negozieranno per un algoritmo di crittografia, dando priorità all'algoritmo AES.
RC4 AES Specifica che i due endpoint negozieranno per un algoritmo di crittografia con questo endpoint che assegna la preferenza all'algoritmo RC4.

Se gli endpoint di connessione specificano entrambi gli algoritmi ma in ordini diversi, l'endpoint che accetta la connessione vince.

Annotazioni

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

Anche se notevolmente più veloce di AES, RC4 è un algoritmo relativamente debole, mentre AES è un algoritmo relativamente forte. È pertanto consigliabile usare l'algoritmo AES.

Per informazioni sulla sintassi Transact-SQL per specificare la crittografia, vedere CREATE ENDPOINT (Transact-SQL).

Attività correlate

Per configurare la sicurezza del trasporto per un endpoint del database di mirroring

Vedere anche

Scelta di un algoritmo di crittografia
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)
Centro sicurezza per il motore di database di SQL Server e il Database SQL di Azure
Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server)
Endpoint di mirroring del database (SQL Server)
sys.database_mirroring_endpoints (Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL)
Risolvere i problemi relativi alla configurazione del mirroring del database (SQL Server)
Risolvere i problemi di configurazione dei gruppi di disponibilità AlwaysOn (SQL Server)eliminati