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

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

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

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

次の例では、初期プリンシパル ロールは HOST_A によって取得され、ミラー ロールは HOST_B によって取得されます。

発信接続の構成

発信接続用に Host_A を構成するには
  1. 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. master データベースで、必要な場合はデータベース マスタ キーを作成します。

    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_B に対するログインを HOST_A に作成します。

    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
    
ms191140.note(ja-jp,SQL.90).gif重要 :
自動フェールオーバーを伴う高い安全性モードで実行する場合、発信接続と着信接続の両方で、ミラーリング監視サーバーを構成する同じ手順を繰り返す必要があります。ミラーリング監視サーバーを利用する着信接続を設定する場合は、両方のパートナーでミラーリング監視サーバー用にログインとユーザーを設定し、ミラーリング監視サーバーで両方のパートナー用にログインとユーザーを設定する必要があります。

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

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

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

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

  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
    
    ms191140.note(ja-jp,SQL.90).gifメモ :
    自動フェールオーバーを伴う高い安全性モードで実行する場合は、トランザクションの安全性を FULL (既定の設定) のままにし、2 番目の SET PARTNER 'partner_server' ステートメントの実行後、できる限り早い段階でミラーリング監視サーバーを追加します。ただし、まずミラーリング監視サーバーが発信接続と着信接続用に構成されている必要があります。

参照

処理手順

データベース ミラーリングで着信接続に証明書を使用できるようにする方法 (Transact-SQL)
データベース ミラーリングで発信接続に証明書を使用できるようにする方法 (Transact-SQL)
ミラーリング用のミラー データベースを準備する方法 (Transact-SQL)

概念

データベース ミラーリング トランスポート セキュリティ
サーバー ネットワーク アドレスの指定 (データベース ミラーリング)
データベース ミラーリング エンドポイント
データベース ミラーリングでの証明書の使用
ミラーリングのためのミラー データベースの準備
データベース ミラーリングの管理 (SQL Server Management Studio)
データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理
データベース ミラーリングの設定のトラブルシューティング

その他の技術情報

ALTER DATABASE (Transact-SQL)
SQL Server のセキュリティに関する注意点

ヘルプおよび情報

SQL Server 2005 の参考資料の入手