Condividi tramite


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 con un server di controllo del mirroring 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 illustrate le operazioni che devono essere svolte in un partner che si trova in HOST_A. In questo esempio i due partner sono le istanze server predefinite nei tre computer. Le due istanze server vengono eseguite in domini Windows non trusted, quindi è necessaria l'autenticazione basata sui certificati.

Nell'esempio seguente il ruolo principale viene inizialmente assunto da HOST_A e il ruolo di server mirror da HOST_B.

Configurazione delle connessioni in uscita

Per configurare Host_A per le connessioni in uscita
  1. Nel database master creare la chiave master del database, se necessaria.

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';
    GO
    
  2. Creare un certificato per questa istanza del server.

    USE master;
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate';
    GO
    
  3. 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
    
  4. 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
    
  5. Utilizzando un metodo di copia protetto, copiare C:\HOST_A_cert.cer in HOST_B.

Per configurare Host_B per le connessioni in uscita
  1. Nel database master creare la chiave master del database, se necessaria.

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
    GO
    
  2. 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
    
  3. 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
    
  4. Eseguire il backup del certificato di HOST_B.

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
    GO 
    
  5. 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).

Configurare le connessioni in ingresso

Per configurare Host_A per le connessioni in ingresso
  1. In HOST_A creare un account di accesso per HOST_B.

    USE master;
    CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#';
    GO
    
  2. --Creare un utente per tale account di accesso.

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    
  3. --Associare il certificato all'utente.

    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'C:\HOST_B_cert.cer'
    GO
    
  4. 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
  1. 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
    
  2. Creare un utente per tale account di accesso.

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
    GO
    
  3. Associare il certificato all'utente.

    CREATE CERTIFICATE HOST_A_cert
       AUTHORIZATION HOST_A_user
       FROM FILE = 'C:\HOST_A_cert.cer'
    GO
    
  4. 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
    
ms191140.note(it-it,SQL.90).gifImportante:
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).

Creare il database mirror

Per informazioni sulla procedura di creazione di un database mirror, vedere Procedura: Preparazione di un database mirror per il mirroring (Transact-SQL).

Configurare i partner del mirroring

  1. 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
    
  2. 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
    
  3. 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.

Vedere anche

Attività

Procedura: Impostazione dell'utilizzo di certificati per le connessioni in entrata del mirroring del database (Transact-SQL)
Procedura: Impostazione del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL)
Procedura: Preparazione di un database mirror per il mirroring (Transact-SQL)

Concetti

Protezione del trasporto per il mirroring del database
Impostazione di un indirizzo di rete del server (mirroring del database)
Endpoint del mirroring del database
Utilizzo di certificati per il mirroring del database
Preparazione di un database di mirror per il mirroring
Gestione del mirroring del database (SQL Server Management Studio)
Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server
Risoluzione dei problemi relativi all'impostazione del mirroring del database

Altre risorse

ALTER DATABASE (Transact-SQL)
Considerazioni relative alla protezione di SQL Server

Guida in linea e informazioni

Assistenza su SQL Server 2005