Procedura: Impostazione dell'utilizzo di certificati per le connessioni in entrata del mirroring del database (Transact-SQL)

In questo argomento viene illustrata la procedura per configurare le istanze del server in modo da utilizzare i certificati per l'autenticazione delle connessioni in ingresso per il mirroring del database. Prima di impostare le connessioni in entrata, è necessario configurare le connessioni in uscita in ogni istanza del server. Per ulteriori informazioni, vedere Procedura: Impostazione del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL).

Il processo di configurazione delle connessioni in entrata include i passaggi generali seguenti:

  1. Creare un account di accesso per l'altro sistema.

  2. Creare un utente per l'account di accesso creato.

  3. Ottenere il certificato per l'endpoint del mirroring dell'altra istanza del server.

  4. Associare il certificato all'utente creato nel passaggio 2.

  5. Concedere l'autorizzazione CONNECT per l'endpoint del mirroring all'account di accesso.

Se è presente un server di controllo del mirroring, è inoltre necessario configurare le connessioni in entrata per tale server. A tale scopo, è necessario configurare gli account di accesso, gli utenti e i certificati per il server di controllo del mirroring in entrambi i partner e viceversa.

Questa procedura descrive i vari passaggi, per ognuno dei quali fornisce un esempio di configurazione di un'istanza del server in un sistema denominato HOST_A. Nella sezione Esempio vengono illustrati gli stessi passaggi per un'altra istanza del server in un sistema denominato HOST_B.

Per configurare le istanze del server per le connessioni per il mirroring in ingresso (on HOST_A)

  1. Creare un account di accesso per l'altro sistema.

    Nell'esempio seguente viene creato un account di accesso per il sistema, HOST_B, nel database master dell'istanza del server in HOST_A. Tale account di accesso è denominato HOST_B_login. Sostituire la password di esempio con una password personalizzata.

    USE master;
    CREATE LOGIN HOST_B_login 
       WITH PASSWORD = '1Sample_Strong_Password!@#';
    GO
    

    Per ulteriori informazioni, vedere CREATE LOGIN (Transact-SQL).

    Per visualizzare gli account di accesso in questa istanza del server, è possibile utilizzare l'istruzione Transact-SQL seguente:

    SELECT * FROM sys.server_principals
    

    Per ulteriori informazioni, vedere sys.server_principals (Transact-SQL).

  2. Creare un utente per l'account di accesso creato.

    Nell'esempio seguente viene creato l'utente HOST_B_user per l'account di accesso creato nel passaggio precedente.

    USE master;
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    

    Per ulteriori informazioni, vedere CREATE USER (Transact-SQL).

    Per visualizzare gli utenti in questa istanza del server, è possibile utilizzare l'istruzione Transact-SQL seguente:

    SELECT * FROM sys.sysusers;
    

    Per ulteriori informazioni, vedere sys.sysusers (Transact-SQL).

  3. Ottenere il certificato per l'endpoint del mirroring dell'altra istanza del server.

    Se questa operazione non è già stata eseguita durante la configurazione delle connessioni in uscita, ottenere una copia del certificato per l'endpoint del mirroring dell'istanza del server remoto. A tale scopo, eseguire il backup del certificato in tale istanza del server, come illustrato in Procedura: Impostazione del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL). Quando si copia un certificato in un altro sistema, utilizzare un sistema di copia protetto. È estremamente importante garantire la protezione di tutti i certificati.

    Per ulteriori informazioni, vedere BACKUP CERTIFICATE (Transact-SQL).

  4. Associare il certificato all'utente creato nel passaggio 2.

    Nell'esempio seguente, il certificato di HOST_B viene associato al relativo utente in HOST_A.

    USE master;
    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'C:\HOST_B_cert.cer'
    GO
    

    Per ulteriori informazioni, vedere CREATE CERTIFICATE (Transact-SQL).

    Per visualizzare i certificati in questa istanza del server, utilizzare l'istruzione Transact-SQL seguente:

    SELECT * FROM sys.certificates
    

    Per ulteriori informazioni, vedere sys.certificates (Transact-SQL).

  5. Concedere l'autorizzazione CONNECT all'account di accesso per l'endpoint del mirroring remoto.

    Ad esempio, per concedere l'autorizzazione in HOST_A all'istanza del server remoto in HOST_B per la connessione al relativo account di accesso locale, ovvero per la connessione a HOST_B_login, utilizzare le istruzioni Transact-SQL seguenti:

    USE master;
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    GO
    

    Per ulteriori informazioni, vedere GRANT - autorizzazioni per endpoint (Transact-SQL).

A questo punto, è stata completata la configurazione dell'autenticazione tramite un certificato per la connessione di HOST_B a HOST_A.

È quindi necessario eseguire i passaggi equivalenti per HOST_A in HOST_B. Tali passaggi sono illustrati nella parte relativa alle connessioni in ingresso della sezione Esempio riportata più avanti.

Esempio

Nell'esempio seguente viene illustrata la configurazione di HOST_B per le connessioni in ingresso.

Nota

Nell'esempio viene utilizzato un file di certificato contenente il certificato di HOST_A creato da un frammento di codice in Procedura: Impostazione del mirroring del database per l'utilizzo di certificati per le connessioni in uscita (Transact-SQL).

USE master;
--On HOST_B, create a login for HOST_A.
CREATE LOGIN HOST_A_login WITH PASSWORD = 'AStrongPassword!@#';
GO
--Create a user, HOST_A_user, for that login.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login
GO
--Obtain HOST_A certificate. (See the note 
--   preceding this example.)
--Asscociate this certificate with the user, HOST_A_user.
CREATE CERTIFICATE HOST_A_cert
   AUTHORIZATION HOST_A_user
   FROM FILE = 'C:\HOST_A_cert.cer';
GO
--Grant CONNECT permission for the server instance on HOST_A.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_A_login
GO

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 informazioni su come creare un database mirror, incluso un esempio di Transact-SQL, vedere Procedura: Preparazione di un database mirror per il mirroring (Transact-SQL).

Per un esempio di Transact-SQL per stabilire una sessione in modalità a prestazioni elevate, vedere Esempio: Impostazione del mirroring del database tramite certificati (Transact-SQL).

Protezione

Quando si copia un certificato in un altro sistema, utilizzare un sistema di copia protetto. È estremamente importante garantire la protezione di tutti i certificati.