次の方法で共有


例: 証明書を使用したデータベース ミラーリングの設定 (Transact-SQL)

この例では、証明書ベースの認証を使用してデータベース ミラーリング セッションを作成するために必要なすべてのステージを示します。 このトピックの例では、Transact-SQL を使用します。 ネットワークがセキュリティで保護されていることを保証できる場合を除いて、データベース ミラーリング接続に対して暗号化を使用することをお勧めします。

証明書を別のシステムにコピーする場合は、セキュリティで保護されたコピー方法を使用してください。 すべての証明書をセキュリティで保護された状態で保管するよう十分に注意してください。

次の例は、HOST_Aに存在する 1 つのパートナーで何を行う必要があるかを示しています。 この例では、2 つのパートナーが 3 つのコンピューター システムの既定のサーバー インスタンスです。 2 つのサーバー インスタンスは、信頼されていない Windows ドメインで実行されるため、証明書ベースの認証が必要です。

最初のプリンシパル ロールはHOST_Aによって実行され、ミラー ロールはHOST_Bによって実行されます。

証明書を使用したデータベース ミラーリングのセットアップには、4 つの一般的なステージが含まれます。そのうちの 3 つのステージ (1、2、4) がこの例で示されています。 これらのステージは次のとおりです。

  1. 送信接続の構成

    この例では、次の手順を示します。

    1. 送信接続のHost_Aの構成。

    2. 送信接続のHost_Bの構成。

    データベース ミラーリングのセットアップのこの段階については、「 データベース ミラーリング エンドポイントが送信接続に証明書を使用できるようにする (Transact-SQL)」を参照してください。

  2. 受信接続の構成

    この例では、次の手順を示します。

    1. 受信接続のHost_Aの構成。

    2. 受信接続のHost_Bの構成。

    データベース ミラーリングのセットアップのこの段階については、「 データベース ミラーリング エンドポイントが受信接続に証明書を使用できるようにする (Transact-SQL)」を参照してください。

  3. ミラー データベースの作成

    ミラー データベースを作成する方法については、「ミラーリング 用のミラー データベースの準備 (SQL Server)」を参照してください。

  4. ミラーリング パートナーの構成

送信接続の構成

送信接続のHost_Aを構成するには

  1. マスター データベースで、必要に応じてデータベース マスター キーを作成します。

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';  
    GO  
    
  2. このサーバー インスタンスの証明書を作成します。

    USE master;  
    CREATE CERTIFICATE HOST_A_cert   
       WITH SUBJECT = 'HOST_A certificate';  
    GO  
    
  3. 証明書を使用してサーバー インスタンスのミラーリング エンドポイントを作成します。

    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. HOST_A証明書をバックアップし、HOST_B他のシステムにコピーします。

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';  
    GO  
    
  5. セキュリティで保護されたコピー方法を使用して、C:\HOST_A_cert.cerをHOST_Bにコピーします。

送信接続のHost_Bを構成するには

  1. マスター データベースで、必要に応じてデータベース マスター キーを作成します。

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';  
    GO  
    
  2. HOST_B サーバー インスタンスに証明書を作成します。

    CREATE CERTIFICATE HOST_B_cert   
       WITH SUBJECT = 'HOST_B certificate for database mirroring';  
    GO  
    
  3. 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. HOST_Bの証明書をバックアップしてください。

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';  
    GO   
    
  5. セキュリティで保護されたコピー方法を使用して、C:\HOST_B_cert.cerをHOST_Aにコピーします。

詳細については、「データベース ミラーリング エンドポイントで発信接続に証明書を使用できるようにする (Transact-SQL)」を参照します。

受信接続の構成

受信接続のHost_Aを構成するには

  1. HOST_AにHOST_Bのログインを作成します。

    USE master;  
    CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#';  
    GO  
    
  2. --そのログインのユーザーを作成します。

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    
  3. --証明書をユーザーに関連付けます。

    CREATE CERTIFICATE HOST_B_cert  
       AUTHORIZATION HOST_B_user  
       FROM FILE = 'C:\HOST_B_cert.cer'  
    GO  
    
  4. リモート ミラーリング エンドポイント用のログインに CONNECT 権限を許可します。

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

受信接続のHost_Bを構成するには

  1. HOST_AのHOST_Bにログインを作成します。

    USE master;  
    CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2';  
    GO  
    
  2. そのログインのユーザー名を作成します。

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;  
    GO  
    
  3. 証明書をユーザーに関連付けます。

    CREATE CERTIFICATE HOST_A_cert  
       AUTHORIZATION HOST_A_user  
       FROM FILE = 'C:\HOST_A_cert.cer'  
    GO  
    
  4. リモート ミラーリング エンドポイント用のログインに CONNECT 権限を許可します。

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];  
    GO  
    

重要

自動フェールオーバーを使用して高い安全性モードで実行する場合は、送信接続と受信接続用のウィットネスを構成するために、同じセットアップ手順を繰り返す必要があります。 証人が関与している場合の受信接続の設定は、証人に対して両方のパートナー用のログインとユーザーを設定し、両方のパートナー側でも証人用のログインとユーザーを設定する必要があります。

詳細については、「データベース ミラーリング エンドポイントで着信接続に証明書を使用できるようにする (Transact-SQL)」を参照してください。

ミラー データベースの作成

ミラー データベースを作成する方法については、「ミラーリング 用のミラー データベースの準備 (SQL Server)」を参照してください。

ミラーリング パートナーの構成

  1. HOST_Bのミラー サーバー インスタンスで、HOST_A上のサーバー インスタンスをパートナーとして設定します (初期プリンシパル サーバー インスタンスにします)。 有効なネットワーク アドレスを TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024に置き換える。 詳細については、「サーバー ネットワーク アドレスの指定 (データベース ミラーリング)」を参照してください。

    --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. HOST_Aのプリンシパル サーバー インスタンスで、HOST_B上のサーバー インスタンスをパートナーとして設定します (初期ミラー サーバー インスタンスにします)。 有効なネットワーク アドレスを 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. この例では、セッションがハイ パフォーマンス モードで実行されることを前提としています。 このセッションを高パフォーマンス モード用に構成するには、プリンシパル サーバー インスタンス (HOST_A) で、トランザクションの安全性を OFF に設定します。

    --Change to high-performance mode by turning off transacton safety.  
    ALTER DATABASE AdventureWorks   
        SET PARTNER SAFETY OFF  
    GO  
    

    自動フェールオーバーで高い安全性モードで実行する場合は、トランザクションの安全性を FULL (既定の設定) に設定したままにし、2 番目の SET PARTNER 'partner_server' ステートメントを実行した後、できるだけ早くミラーリング監視サーバーを追加します。 証人サーバーは、まず送信および受信接続のために構成する必要があることに注意してください。

関連タスク

こちらもご覧ください

データベース ミラーリングと AlwaysOn 可用性グループのトランスポート セキュリティ (SQL Server)
サーバー ネットワーク アドレスの指定 (データベース ミラーリング)
データベース ミラーリング エンドポイント (SQL Server)
データベース ミラーリング エンドポイントでの証明書の使用 (Transact-SQL)
データベースを変更 (Transact-SQL)
SQL Server データベース エンジンと Azure SQL Database のセキュリティ センター