次の方法で共有


トランスポート セキュリティ - データベース ミラーリング - AlwaysOn 可用性

適用対象: SQL Server

トランスポート セキュリティには認証が必要です。状況によっては、複数のデータベース間で交換されるメッセージの暗号化も必要になります。 データベース ミラーリングと Always On 可用性グループでは、認証と暗号化はデータベース ミラーリング エンドポイントで構成されます。 データベース ミラーリング エンドポイントの概要については、「データベース ミラーリング エンドポイント (SQL Server)」を参照してください。

このトピックの内容

認証

認証とは、ユーザーが本人であるかどうかを検査するプロセスです。 データベース ミラーリング エンドポイント間の接続には、認証が必要になります。 パートナーまたはミラーリング監視サーバーから接続を要求された場合は、その接続要求を認証する必要があります。

サーバー インスタンスによりデータベース ミラーリングまたは Always On 可用性グループに使用される認証の種類は、データベース ミラーリング エンドポイントのプロパティで指定します。 データベース ミラーリング エンドポイントに使用できるトランスポート セキュリティには、次の 2 種類があります:Windows 認証 (セキュリティ サポート プロバイダー インターフェイス (SSPI)) と証明書ベース認証。

Windows 認証

Windows 認証では、各サーバー インスタンスが相手側のインスタンスにログインする際には、プロセスを実行している Windows ユーザー アカウントの Windows 資格情報が使用されます。 Windows 認証では、次のように、ログイン アカウントの手動による構成が必要になる場合があります。

  • SQL Server のインスタンスが同じドメイン アカウントでサービスとして実行される場合、追加の構成は必要ありません。

  • SQL Server のインスタンスが (同じドメインまたは信頼関係のあるドメインの) 異なるドメイン アカウントでサービスとして実行される場合、他の各サーバー インスタンス上の master に各アカウントのログインを作成する必要があります。また、そのログインには、エンドポイントに対する CONNECT 権限を与える必要があります。

  • SQL Server のインスタンスがネットワーク サービス アカウントとして実行される場合、他の各サーバー上の master に各ホスト コンピューター アカウント (DomainName\ComputerName$) のログインを作成する必要があります。また、そのログインには、エンドポイントに対する CONNECT アクセス許可を与える必要があります。 これは、ネットワーク サービス アカウントで実行されているサーバー インスタンスではホスト コンピューターのドメイン アカウントを使用して認証を行うためです。

Note

Windows 認証を使用したデータベース ミラーリング セッションの設定例については、「Windows 認証を使用したデータベース ミラーリングの設定の例 (Transact-SQL)」を参照してください。

証明書

サーバー インスタンスが信頼されたドメインに存在しない場合や、SQL Server がローカル サービスとして実行されている場合など、一部の状況では Windows 認証を使用できません。 そのような場合には、接続要求を認証するときに、ユーザーの資格情報ではなく証明書が必要になります。 各サーバー インスタンスのミラーリング エンドポイントは、ローカルで作成された独自の証明書を使用して構成する必要があります。

暗号化方法は、証明書の作成時に設定されます。 詳細については、「データベース ミラーリング エンドポイントで発信接続に証明書を使用できるようにする (Transact-SQL)」を参照します。 使用する証明書は慎重に管理してください。

接続を設定するときに、サーバー インスタンスにより、独自の証明書の秘密キーを使用して ID が作成されます。 接続要求を受け取るサーバー インスタンスでは、送信者の証明書の公開キーを使用して送信者の ID を認証します。 たとえば、Server_A と Server_B という 2 つのサーバー インスタンスを考えてみます。 Server_A では、Server_B に接続要求を送信する前に、秘密キーを使用して接続ヘッダーを暗号化します。 Server_B では、Server_A の証明書の公開キーを使用して接続ヘッダーの暗号化を解除します。 暗号化が解除されたヘッダーが正しい場合、Server_B は、そのヘッダーが Server_A によって暗号化されていたので、接続は認証されると認識します。 暗号化が解除されたヘッダーが正しくない場合、Server_B は、接続要求が認証されないため、接続が拒否されると認識します。

データの暗号化

既定では、データベース ミラーリング エンドポイントは、ミラーリング接続経由で送信されるデータの暗号化を必要とします。 このようなエンドポイントの接続対象となるエンドポイントも暗号化を使用している必要があります。 ネットワークの安全性を保証できる場合を除いて、データベース ミラーリング接続に対して暗号化を使用することをお勧めします。 暗号化は、無効にしたり、必須ではない状態でサポートすることもできます。 暗号化が無効になっていると、データは暗号化されず、エンドポイントは暗号化を必要とするエンドポイントに接続できません。 暗号化がサポートされている場合は、相手側のエンドポイントによって暗号化がサポートまたは必要とされている場合にのみデータが暗号化されます。

Note

SQL Server Management Studio で作成されるミラーリング エンドポイントは、暗号化が必須または無効の状態で作成されます。 暗号化の設定を SUPPORTED に変更するには、Transact-SQL ステートメントの ALTER ENDPOINT を使用します。 詳細については、「ALTER ENDPOINT (Transact-SQL)」を参照してください。

必要に応じて、エンドポイントで使用可能な暗号化アルゴリズムを管理できます。それには、CREATE ENDPOINT ステートメントまたは ALTER ENDPOINT ステートメントの ALGORITHM オプションに、次のいずれかの値を指定します。

ALGORITHM の値 説明
RC4 エンドポイントで RC4 アルゴリズムを使用する必要があることを指定します。 これは既定値です。

** 警告 ** RC4 アルゴリズムは推奨されません。 この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 AES を使用することをお勧めします。
AES エンドポイントで AES アルゴリズムを使用する必要があることを指定します。
AES RC4 2 つのエンドポイントが、AES アルゴリズムを優先するこのエンドポイントと暗号化アルゴリズムについてネゴシエートすることを指定します。
RC4 AES 2 つのエンドポイントで暗号化アルゴリズムをネゴシエートし、このエンドポイントでは RC4 アルゴリズムを優先することを示します。

接続するエンドポイントで 2 つのアルゴリズムが異なる順序で指定されている場合、接続を受け入れる側のエンドポイントの指定が優先されます。

Note

RC4 アルゴリズムは、旧バージョンとの互換性のためにのみサポートされています。 データベース互換性レベルが 90 または 100 の場合、新しい素材は RC4 または RC4_128 を使用してのみ暗号化できます。 (非推奨)。AES アルゴリズムのいずれかなど、新しいアルゴリズムを使用してください。 SQL Server 2012 (11.x) 以降のバージョンでは、どの互換性レベルでも、RC4 または RC4_128 を使用して暗号化された素材を暗号化解除できます。

RC4 は、AES よりもかなり高速ですが、比較的弱いアルゴリズムです。それに対して、AES は比較的強いアルゴリズムです。 したがって、AES アルゴリズムを使用することをお勧めします。

暗号化を指定する Transact-SQL 構文の詳細については、「CREATE ENDPOINT (Transact-SQL)」を参照してください。

Related Tasks

データベース ミラーリング エンドポイントのトランスポート セキュリティを構成するには

参照

暗号化アルゴリズムの選択
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)
SQL Server データベース エンジンと Azure SQL Database のセキュリティ センター
データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理 (SQL Server)
データベース ミラーリング エンドポイント (SQL Server)
sys.database_mirroring_endpoints (Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL)
データベース ミラーリング構成のトラブルシューティング (SQL Server)
Always On 可用性グループの構成のトラブルシューティング (SQL Server)