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

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

  1. 他のシステムへのログインを作成します。Create a login for other system.

  2. そのログインのユーザー名を作成します。Create a user for that login.

  3. 他のサーバー インスタンスのミラーリング エンドポイント用の証明書を入手します。Obtain the certificate for the mirroring endpoint of the other server instance.

  4. 手順 2. で作成したユーザーに証明書を関連付けます。Associate the certificate with the user created in step 2.

  5. ミラーリング エンドポイント用のログインに CONNECT 権限を許可します。Grant CONNECT permission on the login for that mirroring endpoint.

ミラーリング監視サーバーがある場合は、このサーバーでも着信接続の構成を行う必要があります。If there is a witness, you must also set up inbound connections for it. この場合、どちらのパートナーのミラーリング監視サーバーでも、相手のログイン、ユーザー、証明書が必要です。This requires setting up logins, users, and certificates for the witness on both of the partners, and vice versa.

次の手順では、上記の手順について詳しく説明します。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.

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

  1. 他のシステムへのログインを作成します。Create a login for the other system.

    次の例では、システム HOST_B のログインを HOST_A のサーバー インスタンスの master データベースに作成します。この例では、このログインに HOST_B_loginという名前が付けられています。The following example creates a login for the system, HOST_B, in the master database of the server instance on HOST_A; in this example, the login is named HOST_B_login. サンプルのパスワードは、独自のパスワードに置き換えてください。Substitute a password of your own for the sample password.

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

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

    このサーバー インスタンスのログインを表示するには、次の Transact-SQLTransact-SQL ステートメントを使用できます。To view the logins on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.server_principals  
    

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

  2. そのログインのユーザー名を作成します。Create a user for that login.

    次の例では、上記の手順で作成したログイン用のユーザー HOST_B_user を作成します。The following example creates a user, HOST_B_user, for the login created in the preceding step.

    USE master;  
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    

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

    このサーバー インスタンスのユーザーを表示するには、次の Transact-SQLTransact-SQL ステートメントを使用できます。To view the users on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.sysusers;  
    

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

  3. 他のサーバー インスタンスのミラーリング エンドポイント用の証明書を入手します。Obtain the certificate for the mirroring endpoint of the other server instance.

    発信接続の構成時にリモート サーバー インスタンスのミラーリング エンドポイント用の証明書のコピーを入手していない場合は、これを入手します。If you have not already done so when configuring outbound connections, obtain a copy of the certificate for the mirroring endpoint of the remote server instance. これを行うには、「データベース ミラーリング エンドポイントで発信接続に証明書を使用できるようにする(Transact-SQL)」の説明に従って、そのサーバー インスタンスの証明書をバックアップします。To do this, back up the certificate on that server instance as described in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL). 証明書を別のシステムにコピーする場合は、セキュリティで保護されたコピー方法を使用してください。When copying a certificate to another system, use a secure copy method. すべての証明書をセキュリティで保護された状態で保管するよう十分に注意してください。Be extremely careful to keep all of your certificates secure.

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

  4. 手順 2. で作成したユーザーに証明書を関連付けます。Associate the certificate with the user created in step 2.

    次の例では、HOST_B の証明書と HOST_B のユーザーを HOST_A で関連付けています。The following example, associates the certificate of HOST_B with its user on HOST_A.

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

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

    このサーバー インスタンスの証明書を表示するには、次の Transact-SQLTransact-SQL ステートメントを使用します。To view the certificates on this server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.certificates  
    

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

  5. リモート ミラーリング エンドポイント用のログインに CONNECT 権限を許可します。Grant CONNECT permission on the login for the remote mirroring endpoint.

    たとえば、HOST_A に対する権限を HOST_B 上のリモート サーバー インスタンスに許可し、このローカル ログインに接続 (つまり、HOST_B_login に接続) するには、次の Transact-SQLTransact-SQL ステートメントを使用します。For example, to grant permission on HOST_A to the remote server instance on HOST_B to connect to its local login-that is, to connect to HOST_B_login-use the following Transact-SQLTransact-SQL statements:

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

    詳細については、「 GRANT (エンドポイントの権限の許可) (Transact-SQL)」を参照してください。For more information, see GRANT Endpoint Permissions (Transact-SQL).

これで、HOST_A にログインするための HOST_B の証明書認証の設定が完了します。This completes setting up certificate authentication for HOST_B to log in to HOST_A.

ここで、HOST_B で HOST_A 用の着信接続を構成するために同じ手順を実行する必要があります。You now need to perform the equivalent inbound steps for HOST_A on HOST_B. この手順については、次の「例」のサンプル コードで着信接続の設定部分を参照してください。These steps are illustrated in the inbound portion of the example in the Example section, below.

Example

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

注意

この例では、「データベース ミラーリング エンドポイントで発信接続に証明書を使用できるようにする (Transact-SQL)」のコード スニペットによって作成される HOST_A 証明書を含む証明書ファイルを使用します。This example uses a certificate file containing the HOST_A certificate that is created by a code snippet in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (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  

自動フェールオーバーを伴う高い安全性モードで実行する場合、発信接続と着信接続の両方に対応するようミラーリング監視サーバーを構成する手順を繰り返す必要があります。If you intend to run in high-safety mode with automatic failover, you must repeat the same set up steps to configure the witness for outbound and inbound connections.

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

証明書を別のシステムにコピーする場合は、セキュリティで保護されたコピー方法を使用してください。When copying a certificate to another system, use a secure copy method. すべての証明書をセキュリティで保護された状態で保管するよう十分に注意してください。Be extremely careful to keep all of your certificates secure.

参照See Also

データベース ミラーリングと Always On 可用性グループのトランスポート セキュリティ (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
GRANT (エンドポイントのアクセス許可の許可) (Transact-SQL) GRANT Endpoint Permissions (Transact-SQL)
暗号化されたミラー データベースの設定 Set Up an Encrypted Mirror Database
データベース ミラーリング エンドポイント (SQL Server) The Database Mirroring Endpoint (SQL Server)
データベース ミラーリング構成のトラブルシューティング (SQL Server)Troubleshoot Database Mirroring Configuration (SQL Server)