データベース ミラーリング - 発信接続に証明書を使用するDatabase Mirroring - Use Certificates for Outbound Connections

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) 適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions)

このトピックでは、データベース ミラーリングの発信接続を認証する際に証明書を使用するようにサーバー インスタンスを構成する手順について説明します。This topic describes the steps for configuring server instances to use certificates to authenticate outbound connections for database mirroring. 着信接続を設定する前に、発信接続を構成する必要があります。Outbound connection configuration must be done before you can set up inbound connections.

注意

1 つのサーバー インスタンス上のすべてのミラーリング接続では、1 つのデータベース ミラーリング エンドポイントが使用されます。そのため、エンドポイントを作成する際にサーバー インスタンスの認証方法を指定する必要があります。All mirroring connections on a server instance use a single database mirroring endpoint, and you must specify the authentication method of the server instance when you create the endpoint.

発信接続を構成する処理には、次の一般的な手順が含まれます。The process of configuring outbound connections, involves the following general steps:

  1. master データベースで、データベース マスター キーを作成します。In the master database, create a database Master Key.

  2. master データベースで、暗号化された証明書をサーバー インスタンスに作成します。In the master database, create an encrypted certificate on the server instance.

  3. 作成した証明書を使用して、サーバー インスタンスのエンドポイントを作成します。Create an endpoint for the server instance using its certificate.

  4. 証明書をファイルにバックアップし、そのファイルをセキュリティで保護された状態で他のシステムにコピーします。Back up the certificate to a file and securely copy it to the other system or systems.

パートナーおよびミラーリング監視サーバーがある場合は、それぞれで上記の手順を完了する必要があります。You must complete these steps for each partner and the witness, if there is one.

次の手順では、上記の手順について詳しく説明します。The following procedure describes these steps in detail. 各手順では、HOST_A という名前のシステムでサーバー インスタンスを構成するための例を示します。For each step, the procedure provides an example for configuring a server instance on a system named HOST_A. その後に続く「例」では、HOST_B という名前のシステム上の別のサーバー インスタンスに対する同じ手順について説明します。The accompanying Example section demonstrates the same steps for another server instance on a system named HOST_B.

手順Procedure

ミラーリングの発信接続用に (HOST_A 上で) サーバー インスタンスを構成するにはTo configure server instances for outbound mirroring connections (On HOST_A)

  1. master データベースで、データベース マスター キーが存在しない場合は作成します。On the master database, create the database Master Key, if none exists. データベースの既存のキーを表示するには、 sys.symmetric_keys カタログ ビューを使用します。To view the existing keys for a database, use the sys.symmetric_keys catalog view.

    データベース マスター キーを作成するには、次の Transact-SQLTransact-SQL コマンドを使用します。To create the database Master Key, use the following Transact-SQLTransact-SQL command:

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';  
    GO  
    

    複雑で一意なパスワードを使用し、作成したキーを安全な場所に記録します。Use a unique, strong password, and record it in a safe place.

    詳細については、「CREATE MASTER KEY (Transact-SQL)」と「データベース マスター キーの作成」を参照してください。For more information, see CREATE MASTER KEY (Transact-SQL) and Create a Database Master Key.

  2. master データベースで、データベース ミラーリングの発信接続に使用する、暗号化された証明書をサーバー インスタンスに作成します。In the master database, create an encrypted certificate on the server instance to use for its outbound connections for database mirroring.

    たとえば、HOST_A システム用の証明書を作成するには、次のステートメントを使用します。For example, to create a certificate for the HOST_A system.

    重要

    証明書の使用期間が 1 年を超える場合は、CREATE CERTIFICATE ステートメントの EXPIRY_DATE オプションを使用して、有効期限を UTC 時間で指定してください。If you intend to use the certificate for more than one year, specify the expiry date in UTC time by using the EXPIRY_DATE option in your CREATE CERTIFICATE statement. また、証明書の有効期限が近いことを知らせるポリシー ベースの管理ルールを SQL Server Management Studio で作成することをお勧めします。Also, we recommend that you use SQL Server Management Studio to create a Policy-Based Management rule to alert you when your certificates are expiring. ポリシー管理の [新しい条件の作成] ダイアログ ボックスを使用し、 [証明書] ファセットの [@ExpirationDate] フィールドでこのルールを作成します。Using the Policy Management Create New Condition dialog box, create this rule on the @ExpirationDate field of the Certificate facet. 詳細については、「 ポリシー ベースの管理を使用したサーバーの管理 」と「 SQL Server の保護」を参照してください。For more information, see Administer Servers by Using Policy-Based Management and Securing SQL Server.

    USE master;  
    CREATE CERTIFICATE HOST_A_cert   
       WITH SUBJECT = 'HOST_A certificate for database mirroring',   
       EXPIRY_DATE = '11/30/2013';  
    GO  
    

    詳細については、「CREATE CERTIFICATE (Transact-SQL)」を参照してください。For more information, see CREATE CERTIFICATE (Transact-SQL).

    master データベースの証明書を表示するには、次の Transact-SQLTransact-SQL ステートメントを使用できます。To view the certificates in the master database, you can use the following Transact-SQLTransact-SQL statements:

    USE master;  
    SELECT * FROM sys.certificates;  
    

    詳細については、「sys.certificates (Transact-SQL)」を参照してください。For more information, see sys.certificates (Transact-SQL).

  3. 各サーバー インスタンスにデータベース ミラーリング エンドポイントがあることを確認します。Ensure that the database mirroring endpoint exist on each of the server instances.

    サーバー インスタンスにデータベース ミラーリング エンドポイントが既に存在する場合、サーバー インスタンス上で確立するその他のセッションにそのエンドポイントを再利用する必要があります。If a database mirroring endpoint already exists for the server instance, you should reuse that endpoint for any other sessions you establish on the server instance. データベース ミラーリング エンドポイントがサーバー インスタンスに存在するかどうかを確認し、その構成を表示するには、次のステートメントを使用します。To determine whether a database mirroring endpoint exists on a server instance and to view its configuration, use the following statement:

    SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc   
       FROM sys.database_mirroring_endpoints;  
    

    エンドポイントが存在しない場合、発信接続にこの証明書を使用し、他のシステムでの検証にその証明書の資格情報を使用するエンドポイントを作成します。If no endpoint exists, create an endpoint that uses this certificate for outbound connections and that uses the certificate's credentials for verification on the other system. これは、サーバー全体のエンドポイントであり、サーバー インスタンスが参加するすべてのミラーリング セッションで使用されます。This is a server-wide endpoint that is used by all mirroring sessions in which the server instance participates.

    たとえば、HOST_A 上のサーバー インスタンスの例にミラーリング エンドポイントを作成するには、次のステートメントを使用します。For example, to create a mirroring endpoint for the example server instance on HOST_A.

    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  
    

    詳細については、「CREATE ENDPOINT (Transact-SQL)」を参照してください。For more information, see CREATE ENDPOINT (Transact-SQL).

  4. 証明書をバックアップし、他のシステムにコピーします。Back up the certificate and copy it to the other system or systems. この操作は、他のシステムで着信接続を構成するために必要です。This is necessary in order to configure inbound connections on the other system.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';  
    GO  
    

    詳細については、「BACKUP CERTIFICATE (Transact-SQL)」を参照してください。For more information, see BACKUP CERTIFICATE (Transact-SQL).

    任意の安全な方法を使用し、この証明書をコピーします。Copy this certificate using any secure method you choose. すべての証明書をセキュリティで保護された状態で保管するよう十分に注意してください。Be extremely careful to keep all of your certificates secure.

上記の手順のコード例では、HOST_A の発信接続を構成します。The example code in the preceding steps configure outbound connections on HOST_A.

ここで、HOST_B の着信接続を構成するために同じ手順を実行する必要があります。You now need to perform the equivalent outbound steps for HOST_B. この手順については、次の「例」で説明します。These steps are illustrated in the following Example section.

Example

次の例では、発信接続用に HOST_B を構成する方法について示します。The following example demonstrates configuring HOST_B for outbound connections.

USE master;  
--Create the database Master Key, if needed.  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';  
GO  
-- Make a certifcate on HOST_B server instance.  
CREATE CERTIFICATE HOST_B_cert   
   WITH SUBJECT = 'HOST_B certificate for database mirroring',   
   EXPIRY_DATE = '11/30/2013';  
GO  
--Create a mirroring endpoint for the server instance on 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  
--Backup HOST_B certificate.  
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';  
GO   
--Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.  

任意の安全な方法を使用し、証明書を他のシステムにコピーします。Copy the certificate to the other system using any secure method you choose. すべての証明書をセキュリティで保護された状態で保管するよう十分に注意してください。Be extremely careful to keep all of your certificates secure.

重要

発信接続を設定した後、各サーバー インスタンスの着信接続を他のサーバー インスタンス用に構成する必要があります。After you set up outbound connections, you must configure inbound connections on each server instance for the other server instance or instances. 詳細については、「 データベース ミラーリング エンドポイントで着信接続に証明書を使用できるようにする (Transact-SQL)を使用します。For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Inbound Connections (Transact-SQL).

Transact-SQL の例を含む、ミラー データベースを作成する方法の詳細については、「ミラーリングのためのミラー データベースの準備 (SQL Server)」を参照してください。For information on creating a mirror database, including a Transact-SQL example, see Prepare a Mirror Database for Mirroring (SQL Server).

高パフォーマンス モードのセッションを確立する Transact-SQL の例については、「証明書を使用したデータベース ミラーリングの設定の例 (Transact-SQL)」を参照してください。For a Transact-SQL example of establishing a high-performance mode session, see Example: Setting Up Database Mirroring Using Certificates (Transact-SQL).

.NET Framework のセキュリティ.NET Framework Security

ネットワークがセキュリティで保護されていることを保証できる場合を除いて、データベース ミラーリング接続に対して暗号化を使用することをお勧めします。Unless you can guarantee that your network is secure, we recommend that you use encryption for database mirroring connections.

証明書を別のシステムにコピーする場合は、セキュリティで保護されたコピー方法を使用してください。When copying a certificate to another system, use a secure copy method.

参照See Also

暗号化アルゴリズムの選択 Choose an Encryption Algorithm
ミラーリングのためのミラー データベースの準備 (SQL Server) Prepare a Mirror Database for Mirroring (SQL Server)
ALTER ENDPOINT (Transact-SQL) ALTER ENDPOINT (Transact-SQL)
例:証明書を使用したデータベース ミラーリングの設定 (Transact-SQL) Example: Setting Up Database Mirroring Using Certificates (Transact-SQL)
データベース ミラーリング エンドポイント (SQL Server) The Database Mirroring Endpoint (SQL Server)
データベース ミラーリング構成のトラブルシューティング (SQL Server) Troubleshoot Database Mirroring Configuration (SQL Server)
暗号化されたミラー データベースの設定Set Up an Encrypted Mirror Database