Esempio: Impostazione del mirroring del database tramite certificati (Transact-SQL)
In questo esempio vengono illustrati tutti i passaggi necessari per la creazione di una sessione di mirroring del database tramite l'autenticazione basata sui certificati. Negli esempi di questo argomento viene utilizzato Transact-SQL. Se non è possibile garantire la protezione della rete, è consigliabile utilizzare la crittografia per le connessioni per il mirroring del database.
Per copiare un certificato in un altro sistema, utilizzare un metodo di copia protetto. È molto importante tenere tutti i certificati in una posizione protetta.
Esempio
Nell'esempio seguente vengono descritte le operazioni necessarie in un partner che risiede in HOST_A. Nell'esempio i due partner sono le istanze predefinite del server in tre sistemi. Le due istanze server vengono eseguite in domini Windows non trusted, quindi è necessaria l'autenticazione basata sui certificati.
Il ruolo principale viene inizialmente assunto da HOST_A e il ruolo di server mirror da HOST_B.
La configurazione del mirroring del database eseguita tramite certificati è costituita da quattro fasi generali. Le fasi 1, 2 e 4 vengono illustrate in questo esempio. Le fasi sono le seguenti:
Configurazione delle connessioni in uscita
Nell'esempio riportato di seguito vengono illustrate le fasi seguenti:
Configurazione di Host_A per le connessioni in uscita.
Configurazione di Host_B per le connessioni in uscita.
Per informazioni su questa fase di configurazione del mirroring del database, vedere Procedura: Impostazione del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL).
Configurazione delle connessioni in ingresso
Nell'esempio riportato di seguito vengono illustrate le fasi seguenti:
Configurazione di Host_A per le connessioni in ingresso.
Configurazione di Host_B per le connessioni in ingresso.
Per informazioni su questa fase di configurazione del mirroring del database, vedere Procedura: Impostazione dell'utilizzo di certificati per le connessioni in entrata del mirroring del database (Transact-SQL).
Creazione del database mirror
Per informazioni sulla procedura di creazione di un database mirror, vedere Procedura: Preparazione di un database mirror per il mirroring (Transact-SQL).
Configurazione dei partner del mirroring
Configurazione delle connessioni in uscita
Per configurare Host_A per le connessioni in uscita
Nel database master creare la chiave master del database, se necessaria.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>'; GO
Creare un certificato per questa istanza del server.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GO
Creare un endpoint del mirroring per l'istanza del server che utilizza il certificato.
CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=7024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Eseguire il backup del certificato di HOST_A e copiarlo nell'altro sistema, HOST_B.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Utilizzando un metodo di copia protetto, copiare C:\HOST_A_cert.cer in HOST_B.
Per configurare Host_B per le connessioni in uscita
Nel database master creare la chiave master del database, se necessaria.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; GO
Creare un certificato per l'istanza del server in HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GO
Creare un endpoint del mirroring per l'istanza del server in HOST_B.
CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=7024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Eseguire il backup del certificato di HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GO
Utilizzando un metodo di copia protetto, copiare C:\HOST_B_cert.cer in HOST_A.
Per ulteriori informazioni, vedere Procedura: Impostazione del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL).
[Torna all'inizio]
Configurazione delle connessioni in ingresso
Per configurare Host_A per le connessioni in ingresso
In HOST_A creare un account di accesso per HOST_B.
USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; GO
--Creare un utente per tale account di accesso.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
--Associare il certificato all'utente.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
Concedere l'autorizzazione CONNECT per l'account di accesso per l'endpoint del mirroring remoto.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
Per configurare Host_B per le connessioni in ingresso
In HOST_B creare un account di accesso per HOST_A.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GO
Creare un utente per tale account di accesso.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GO
Associare il certificato all'utente.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GO
Concedere l'autorizzazione CONNECT per l'account di accesso per l'endpoint del mirroring remoto.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login]; GO
Importante |
---|
Se si prevede di utilizzare la modalità a sicurezza elevata con failover automatico, è necessario ripetere gli stessi passaggi di impostazione per configurare il server di controllo del mirroring per connessioni in uscita e in ingresso. Per configurare le connessioni in ingresso per un server di controllo del mirroring è necessario impostare account di accesso e utenti per il server di controllo del mirroring in entrambi i partner e per entrambi i partner nel server di controllo del mirroring. |
Per ulteriori informazioni, vedere Procedura: Impostazione dell'utilizzo di certificati per le connessioni in entrata del mirroring del database (Transact-SQL).
[Torna all'inizio]
Creazione del database mirror
Per informazioni sulla procedura di creazione di un database mirror, vedere Procedura: Preparazione di un database mirror per il mirroring (Transact-SQL).
Configurazione dei partner del mirroring
Nell'istanza del server mirror in HOST_B, impostare l'istanza del server in HOST_A come partner (rendendola l'istanza iniziale del server principale). Specificare un indirizzo di rete valido per TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024. Per ulteriori informazioni, vedere Impostazione di un indirizzo di rete del server (mirroring del database).
--At HOST_B, set server instance on HOST_A as partner (principal server): ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024'; GO
Nell'istanza del server principale in HOST_A, impostare l'istanza del server in HOST_B come partner (rendendola l'istanza iniziale del server mirror). Specificare un indirizzo di rete valido per TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024.
--At HOST_A, set server instance on HOST_B as partner (mirror server). ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024'; GO
In questo esempio si presuppone che la sessione verrà eseguita nella modalità a prestazioni elevate. Per configurare la sessione per la modalità a prestazioni elevate, nell'istanza del server principale (in HOST_A), impostare la protezione delle transazioni su OFF.
--Change to high-performance mode by turning off transacton safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GO
[!NOTA]
Se si prevede di utilizzare la modalità a sicurezza elevata con failover automatico, lasciare la sicurezza delle transazioni impostata su FULL (impostazione predefinita) e aggiungere il server di controllo del mirroring non appena possibile dopo l'esecuzione della seconda istruzione SET PARTNER 'partner_server'. Si osservi che è necessario configurare prima il server di controllo del mirroring per le connessioni in uscita e in ingresso.
[Torna all'inizio]
Vedere anche