適用対象:SQL Server
トランスポート セキュリティには認証が必要です。状況によっては、複数のデータベース間で交換されるメッセージの暗号化も必要になります。 データベース ミラーリングと Always On 可用性グループでは、認証と暗号化はデータベース ミラーリング エンドポイントで構成されます。 データベース ミラーリング エンドポイントの概要については、「データベース ミラーリング エンドポイント (SQL Server)」を参照してください。
認証
認証とは、ユーザーが本人であるかどうかを検査するプロセスです。 データベース ミラーリング エンドポイント間の接続には、認証が必要になります。 パートナーまたはミラーリング監視サーバーから接続を要求された場合は、その接続要求を認証する必要があります。
サーバー インスタンスによりデータベース ミラーリングまたは Always On 可用性グループに使用される認証の種類は、データベース ミラーリング エンドポイントのプロパティで指定します。 データベース ミラーリング エンドポイントに使用できるトランスポート セキュリティには、次の 2 種類があります:Windows 認証 (セキュリティ サポート プロバイダー インターフェイス (SSPI)) と証明書ベース認証。
Windows 認証
Windows 認証では、各サーバー インスタンスが相手側のインスタンスにログインする際には、プロセスを実行している Windows ユーザー アカウントの Windows 資格情報が使用されます。 Windows 認証では、次のように、ログイン アカウントの手動による構成が必要になる場合があります。
SQL Server のインスタンスが同じドメイン アカウントでサービスとして実行される場合、追加の構成は必要ありません。
SQL Serverのインスタンスが異なるドメイン アカウント (同じドメインまたは信頼されたドメイン) でサービスとして実行される場合は、各アカウントのログインを他の各サーバー インスタンスの
masterで作成し、そのログインにエンドポイントに対するCONNECTアクセス許可を付与する必要があります。SQL Serverのインスタンスがネットワーク サービス アカウントとして実行される場合は、各ホスト コンピューター アカウント (
<domain-name>\<computer-name>$) のログインを他の各サーバーのmasterに作成し、そのログインにエンドポイントに対するアクセス許可CONNECT付与する必要があります。 これは、ネットワーク サービス アカウントで実行されているサーバー インスタンスではホスト コンピューターのドメイン アカウントを使用して認証を行うためです。
注
Windows Authenticationを使用してデータベース ミラーリング セッションを設定する例については、「例: Windows 認証を使用してデータベース ミラーリングを構成する」を参照してください。
証明書
サーバー インスタンスが信頼されたドメインにない場合や、SQL Serverがローカル サービスとして実行されている場合など、Windows認証が使用できない場合があります。 そのような場合には、接続要求を認証するときに、ユーザーの資格情報ではなく証明書が必要になります。 各サーバー インスタンスのミラーリング エンドポイントは、ローカルで作成された独自の証明書を使用して構成する必要があります。
暗号化方法は、証明書の作成時に設定されます。 詳細については、「 データベース ミラーリング - 送信接続に証明書を使用する」を参照してください。 使用する証明書は慎重に管理してください。
接続を設定するときに、サーバー インスタンスにより、独自の証明書の秘密キーを使用して ID が作成されます。 接続要求を受け取るサーバー インスタンスでは、送信者の証明書の公開キーを使用して送信者の ID を認証します。 たとえば、 Server_A と Server_Bの 2 つのサーバー インスタンスについて考えてみます。
Server_A では、 Server_Bに接続要求を送信する前に、その秘密キーを使用して接続ヘッダーを暗号化します。
Server_B では、 Server_Aの証明書の公開キーを使用して、接続ヘッダーの暗号化を解除します。 復号化されたヘッダーが正しい場合、 Server_B はヘッダーが Server_Aによって暗号化され、接続が認証されていることを認識します。 復号化されたヘッダーが正しくない場合、 Server_B は接続要求が認証されていないことを認識し、接続を拒否します。
データの暗号化
既定では、データベース ミラーリング エンドポイントは、ミラーリング接続経由で送信されるデータの暗号化を必要とします。 このようなエンドポイントの接続対象となるエンドポイントも暗号化を使用している必要があります。 ネットワークの安全性を保証できる場合を除いて、データベース ミラーリング接続に対して暗号化を使用することをお勧めします。 暗号化は、無効にしたり、必須ではない状態でサポートすることもできます。 暗号化が無効になっている場合、データは暗号化されないため、エンドポイントは暗号化を必要とするエンドポイントに接続できません。 暗号化がサポートされている場合は、相手側のエンドポイントによって暗号化がサポートまたは必要とされている場合にのみデータが暗号化されます。
注
SQL Server Management Studio で作成されるミラーリング エンドポイントは、暗号化が必須または無効の状態で作成されます。 暗号化設定を SUPPORTED に変更するには、 ALTER ENDPOINT Transact-SQL ステートメントを使用します。 詳細については、ALTER ENDPOINTを参照してください。
必要に応じて、ALGORITHM ステートメントまたは CREATE ENDPOINT ステートメントで ALTER ENDPOINT オプションに次のいずれかの値を指定することで、エンドポイントで使用できる暗号化アルゴリズムを制御できます。
ALGORITHM 値 |
説明 |
|---|---|
| RC4 (既定) | エンドポイントで RC4 アルゴリズムを使用する必要があることを指定します。 警告: RC4 アルゴリズムは非推奨です。 この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 AES を使用することをお勧めします。 |
| AES (推奨) | エンドポイントで AES アルゴリズムを使用する必要があることを指定します。 |
| AES RC4 | 2 つのエンドポイントが、AES アルゴリズムを優先するこのエンドポイントと暗号化アルゴリズムをネゴシエートすることを指定します。 |
| RC4 AES | 2 つのエンドポイントが、RC4 アルゴリズムを優先するこのエンドポイントと暗号化アルゴリズムについてネゴシエートすることを指定します。 |
接続するエンドポイントで 2 つのアルゴリズムが異なる順序で指定されている場合、接続を受け入れる側のエンドポイントの指定が優先されます。
Caution
RC4 は、AES よりもかなり高速ですが、比較的弱いアルゴリズムです。それに対して、AES は比較的強いアルゴリズムです。 したがって、AES アルゴリズムを使用する必要があります。
RC4 アルゴリズムは、旧バージョンとの互換性のためにのみサポートされています。 データベースが互換性レベル 90 または 100 の場合にのみ、RC4 またはRC4_128を使用してデータを暗号化できます (推奨されません)。 AES アルゴリズムのいずれかなど、新しいアルゴリズムを使用してください。 SQL Server 2012 (11.x) 以降のバージョンでは、RC4 またはRC4_128を使用して暗号化されたデータを任意の互換性レベルで復号化できます。
暗号化を指定するための Transact-SQL 構文については、 CREATE ENDPOINTを参照してください。
データベース ミラーリング エンドポイントのトランスポート セキュリティを構成する
- Windows認証用のデータベース ミラーリング エンドポイントを作成する
- データベース ミラーリング セッションの確立 - Windows 認証
- Windows認証用のデータベース ミラーリング エンドポイントを作成する
- データベース ミラーリング - 送信接続に証明書を使用する
関連するコンテンツ
- 暗号化アルゴリズムを選択する
- ALTER ENDPOINT (Transact-SQL)
- DROP ENDPOINT (Transact-SQL)
- SQL Server データベース エンジンと Azure SQL Database のセキュリティ
- データベースを別のサーバーで使用できるようにするときのメタデータの管理
- データベース ミラーリング エンドポイント (SQL Server)
- sys.database_mirroring_endpoints(Transact-SQL)
- sys.dm_db_mirroring_connections (Transact-SQL)
- データベース ミラーリング構成のトラブルシューティング (SQL Server)
- Always On 可用性グループ構成のトラブルシューティング (SQL Server)