Disponibilità Always On per il mirroring dei database con sicurezza del trasportoTransport Security - Database Mirroring - Always On Availability

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

La sicurezza del trasporto implica l'utilizzo dell'autenticazione e, facoltativamente, della crittografia dei messaggi scambiati tra i database.Transport security involves authentication and, optionally, encryption of messages exchanged between the databases. Per il mirroring del database e Gruppi di disponibilità Always OnAlways On availability groups, l'autenticazione e la crittografia devono essere configurate nell'endpoint del mirroring del database.For database mirroring and Gruppi di disponibilità Always OnAlways On availability groups, authentication and encryption are configured on the database mirroring endpoint. Per un'introduzione agli endpoint del mirroring del database, vedere Endpoint del mirroring del database (SQL Server).For an introduction to database mirroring endpoints, see The Database Mirroring Endpoint (SQL Server).

Contenuto dell'argomentoIn this Topic:

Autenticazione Authentication

L'autenticazione è il processo di verifica che un utente sia effettivamente colui che dichiara di essere.Authentication is the process of verifying that a user is who the user claims to be. Per le connessioni tra endpoint del mirroring del database è necessaria l'autenticazione.Connections between database mirroring endpoints require authentication. Le richieste di connessione da parte del partner o del server di controllo del mirroring devono essere autenticate.Connection requests from a partner or witness, if any, must be authenticated.

Il tipo di autenticazione utilizzata da un'istanza del server per il mirroring del database o Gruppi di disponibilità Always OnAlways On availability groups è una proprietà dell'endpoint del mirroring del database.The type of authentication used by a server instance for database mirroring or Gruppi di disponibilità Always OnAlways On availability groups is a property of the database mirroring endpoint. Per gli endpoint del mirroring del database sono disponibili due tipi di sicurezza del trasporto, ovvero l'autenticazione di Windows (Security Support Provider Interface) e l'autenticazione basata sul certificato.Two types of transport security are available for database mirroring endpoints: Windows Authentication (the Security Support Provider Interface (SSPI)) and certificate-based authentication.

Autenticazione di WindowsWindows Authentication

Con l'autenticazione di Windows, ogni istanza del server accede all'altra parte utilizzando le credenziali di Windows dell'account utente di Windows in cui è in esecuzione il processo.Under Windows Authentication, each server instance logs in to the other side using the Windows credentials of the Windows user account under which the process is running. L'autenticazione di Windows potrebbe richiedere una configurazione manuale degli account di accesso, ad esempio:Windows Authentication might require some manual configuration of login accounts, as follows:

  • Se le istanze di SQL ServerSQL Server è in esecuzione come servizi con lo sotto lo stesso account di dominio, non è richiesta alcuna configurazione aggiuntiva.If the instances of SQL ServerSQL Server run as services under the same domain account, no extra configuration is required.

  • Se le istanze di SQL ServerSQL Server sono in esecuzione come servizi con diversi account di dominio (in domini uguali o attendibili), è necessario creare l'account di accesso di ogni account in master in ognuna delle istanze del server remoto e a quell'account di accesso devono essere concesse le autorizzazioni CONNECT sull'endpoint.If the instances of SQL ServerSQL Server run as services under different domain accounts (in the same or trusted domains), the login of each account must be created in master on each of the other server instances, and that login must be granted CONNECT permissions on the endpoint.

  • Se le istanze di SQL ServerSQL Server sono in esecuzione come account del servizio di rete, l'account di accesso di ogni account del computer host (DomainName\ComputerName$) deve essere creato in master in ognuna delle istanze del server remoto e a quell'account di accesso devono essere concesse le autorizzazioni CONNECT sull'endpoint.If the instances of SQL ServerSQL Server run as the Network Service account, the login of the each host computer account (DomainName\ComputerName$) must be created in master on each of the other servers, and that login must be granted CONNECT permissions on the endpoint. Ciò avviene in quanto un'istanza del server che è in esecuzione con l'account del servizio di rete esegue l'autenticazione utilizzando l'account di dominio del computer host.This is because a server instance running under the Network Service account authenticates using the domain account of the host computer.

Nota

Per un esempio di impostazione di una sessione di mirroring del database mediante l'autenticazione di Windows, vedere Esempio: Impostazione del mirroring del database tramite l'autenticazione di Windows (Transact-SQL).For an example of setting up a database mirroring session using Windows Authentication, see Example: Setting Up Database Mirroring Using Windows Authentication (Transact-SQL).

CertificatiCertificates

In alcuni casi, ad esempio quando le istanze del server non si trovano in domini di tipo trusted oppure quando SQL ServerSQL Server è in esecuzione come servizio locale, l'autenticazione di Windows non è disponibile.In some situations, such as when server instances are not in trusted domains or when SQL ServerSQL Server is running as a local service, Windows Authentication is unavailable. In tali casi al posto delle credenziali utente per l'autenticazione delle richieste di connessione sono necessari certificati.In such cases, instead of user credentials, certificates are required to authenticate connection requests. L'endpoint del mirroring di ogni istanza del server deve essere configurato con il proprio certificato creato localmente.The mirroring endpoint of each server instance must be configured with its own locally created certificate.

Il metodo di crittografia viene stabilito al momento della creazione del certificato.The encryption method is established when the certificate is created. Per altre informazioni, vedere Impostazione dell'endpoint del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL).For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL). Prestare attenzione nella gestione dei certificati utilizzati.Carefully manage the certificates that you use.

In un'istanza del server viene utilizzata la chiave privata del proprio certificato per stabilire la propria identità durante la configurazione di una connessione.A server instance uses the private key of its own certificate to establish its identity when setting up a connection. Nell'istanza del server che riceve la richiesta di connessione viene utilizzata la chiave pubblica del certificato del mittente per autenticare l'identità del mittente.The server instance that receives the connection request uses the public key of the sender's certificate to authenticate the sender's identity. Considerare, ad esempio, due istanze del server, Server_A e Server_B.For example, consider two server instances, Server_A and Server_B. In Server_A viene utilizzata la propria chiave privata per crittografare l'intestazione di connessione prima di inviare una richiesta di connessione a Server_B.Server_A uses its private key to encrypt the connection header before sending a connection request to Server_B. Server_B utilizza la chiave pubblica del certificato di Server_A per decrittografare l'intestazione di connessione.Server_B uses the public key of Server_A's certificate to decrypt the connection header. Se l'intestazione decrittografata è corretta, Server_B sa che l'intestazione è stata crittografata da Server_A e la connessione viene autenticata.If the decrypted header is correct, Server_B knows that the header was encrypted by Server_A, and the connection is authenticated. Se l'intestazione decrittografata non è corretta, Server_B sa che la richiesta di connessione non è autentica e rifiuta la connessione.If the decrypted header is incorrect, Server_B knows that the connection request is inauthentic and refuses the connection.

Crittografia dei dati Data Encryption

Per impostazione predefinita, un endpoint del mirroring del database richiede la codifica dei dati inviati in connessioni per il mirroring.By default, a database mirroring endpoint requires encryption of data sent over mirroring connections. In questo caso, l'endpoint può connettersi solo a endpoint che utilizzano la crittografia.In this case, the endpoint can connect only to endpoints that also use encryption. A meno che non si sia assolutamente certi della sicurezza della rete, per le connessioni per il mirroring del database è consigliabile richiedere la crittografia.Unless you can guarantee that your network is secure, we recommend that you require encryption for your database mirroring connections. È tuttavia possibile disabilitare la crittografia oppure fare in modo che sia supportata ma non necessaria.However, you can disable encryption or make it supported, but not required. Se la crittografia viene disabilitata, i dati non vengono mai crittografati e l'endpoint non può connettersi ad altri endpoint che la richiedono.If encryption is disabled, data is never encrypted and the endpoint cannot connect to an endpoint that requires encryption. Se la crittografia è supportata, i dati vengono crittografati solo se l'endpoint opposto supporta o richiede la crittografia.If encryption is supported, data is encrypted only if the opposite endpoint either supports or requires encryption.

Nota

Gli endpoint del mirroring creati da SQL Server Management StudioSQL Server Management Studio vengono creati con la crittografia impostata come richiesta o disabilitata.Mirroring endpoints created by SQL Server Management StudioSQL Server Management Studio are created with encryption either required or disabled. Per impostare il valore SUPPORTED per la crittografia, utilizzare l'istruzione Transact-SQLTransact-SQL ALTER ENDPOINT.To change the encryption setting to SUPPORTED, use the ALTER ENDPOINT Transact-SQLTransact-SQL statement. Per altre informazioni, vedere ALTER ENDPOINT (Transact-SQL).For more information, see ALTER ENDPOINT (Transact-SQL).

Facoltativamente, è possibile controllare gli algoritmi di crittografia che possono essere utilizzati da un endpoint specificando uno dei valori seguenti per l'opzione ALGORITHM in un'istruzione CREATE ENDPOINT o ALTER ENDPOINT:Optionally, you can control the encryption algorithms that can be used by an endpoint, by specifying one of the following values for the ALGORITHM option in a CREATE ENDPOINT statement or ALTER ENDPOINT statement:

Valore di ALGORITHMALGORITHM value DescrizioneDescription
RC4RC4 Specifica che l'endpoint deve utilizzare l'algoritmo RC4.Specifies that the endpoint must use the RC4 algorithm. Impostazione predefinita.This is the default.

** Avviso *\* L'algoritmo RC4 è deprecato.** Warning *\* The RC4 algorithm is deprecated. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Non usare questa funzionalità in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible. È consigliabile utilizzare AES. We recommend that you use AES.
AESAES Specifica che l'endpoint deve utilizzare l'algoritmo AES.Specifies that the endpoint must use the AES algorithm.
AES RC4AES RC4 Specifica che due endpoint eseguiranno la negoziazione di un algoritmo di crittografia con l'endpoint corrente, dando la priorità all'algoritmo AES.Specifies that the two endpoints will negotiate for an encryption algorithm with this endpoint giving preference to the AES algorithm.
RC4 AESRC4 AES Specifica che due endpoint eseguiranno la negoziazione di un algoritmo di crittografia con l'endpoint corrente, dando la priorità all'algoritmo RC4.Specifies that the two endpoints will negotiate for an encryption algorithm with this endpoint giving preference to the RC4 algorithm.

Se gli endpoint che stabiliscono la connessione specificano entrambi gli algoritmi ma in ordine diverso, avrà la priorità l'endpoint che accetta la connessione.If connecting endpoints specify both algorithms but in different orders, the endpoint accepting the connection wins.

Nota

L'algoritmo RC4 è supportato solo per motivi di compatibilità con le versioni precedenti.The RC4 algorithm is only supported for backward compatibility. È possibile crittografare il nuovo materiale usando RC4 o RC4_128 solo quando il livello di compatibilità del database è 90 o 100.New material can only be encrypted using RC4 or RC4_128 when the database is in compatibility level 90 or 100. (Non consigliato.) Usare un algoritmo più recente, ad esempio uno degli algoritmi AES.(Not recommended.) Use a newer algorithm such as one of the AES algorithms instead. In SQL Server 2012SQL Server 2012 e versioni successive il materiale crittografato usando RC4 o RC4_128 può essere decrittografato in qualsiasi livello di compatibilità.In SQL Server 2012SQL Server 2012and higher versions, material encrypted using RC4 or RC4_128 can be decrypted in any compatibility level.

Sebbene notevolmente più veloce rispetto all'algoritmo AES, RC4 è relativamente vulnerabile, mentre AES è relativamente avanzato.Though considerably faster than AES, RC4 is a relatively weak algorithm, while AES is a relatively strong algorithm. È quindi consigliabile utilizzare l'algoritmo AES.Therefore, we recommend that you use the AES algorithm.

Per informazioni sulla sintassi Transact-SQLTransact-SQL per la specifica della crittografia, vedere CREATE ENDPOINT (Transact-SQL).For information about the Transact-SQLTransact-SQL syntax for specifying encryption, see CREATE ENDPOINT (Transact-SQL).

Per configurare la sicurezza del trasporto per un endpoint del mirroring del databaseTo configure transport security for a database mirroring endpoint

Vedere ancheSee Also

Scelta di un algoritmo di crittografia Choose an Encryption Algorithm
ALTER ENDPOINT (Transact-SQL) ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL) DROP ENDPOINT (Transact-SQL)
Centro di sicurezza per il motore di database di SQL Server e il database SQL di Azure Security Center for SQL Server Database Engine and Azure SQL Database
Gestire i metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server) Manage Metadata When Making a Database Available on Another Server Instance (SQL Server)
Endpoint del mirroring del database (SQL Server) The Database Mirroring Endpoint (SQL Server)
sys.database_mirroring_endpoints (Transact-SQL) sys.database_mirroring_endpoints (Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL) sys.dm_db_mirroring_connections (Transact-SQL)
Risolvere i problemi relativi alla configurazione del mirroring del database (SQL Server) Troubleshoot Database Mirroring Configuration (SQL Server)
Risolvere i problemi relativi alla configurazione di Gruppi di disponibilità AlwaysOn (SQL Server)Troubleshoot Always On Availability Groups Configuration (SQL Server)