セキュリティで保護されたエンクレーブが設定された Always Encrypted を使用して列の暗号化をインプレースで構成する

適用対象: SQL Server 2019 (15.x) 以降 - Windows のみ Azure SQL Database

セキュリティで保護されたエンクレーブが設定された Always Encrypted を使用すると、 のセキュリティで保護されたエンクレーブ内で、データベースの列に対するインプレースでの暗号化操作がサポートされます。 インプレース暗号化を使うと、そのような操作のためにデータをデータベースの外部に移動する必要がなくなり、暗号化操作の速度と信頼性が向上します。

注意

インプレース暗号化のパフォーマンス上の利点にもかかわらず、大きなテーブルの暗号化操作には時間がかかり、大量のリソースが消費され、アプリケーションのパフォーマンスと可用性が低下する可能性があります。

インプレース暗号化を使うと、ALTER TABLE ALTER COLUMN (Transact-SQL) ステートメントを使用して暗号化操作をトリガーすることもできます。これは、エンクレーブなしでは実行できません。

前提条件

サポートされている暗号化操作と、操作に使用される列暗号化キーの要件は、次のとおりです。

  • プレーンテキスト列の暗号化。 列の暗号化に使用される列暗号化キーは、エンクレーブ対応である必要があります。
  • 新しい暗号化の種類と新しい列暗号化キーの一方または両方を使用した、暗号化された列の再暗号化。 現在の列暗号化キーと新しい列暗号化キー (現在のキーと異なる場合) の両方が、エンクレーブ対応である必要があります。
  • 暗号化された列の暗号化解除。列を保護している列暗号化キーは、エンクレーブ対応である必要があります。

列暗号化キーがエンクレーブ対応であることを確認する方法については、「セキュリティで保護されたエンクレーブを使用して Always Encrypted のキーを管理する」を参照してください。

また、ご利用の環境で一般的な、「セキュリティで保護されたエンクレーブを使用してステートメントを実行するための前提条件」が満たされるようにする必要があります。

暗号化操作をトリガーするユーザーまたはアプリケーションには、影響を受ける列を含むテーブルでスキーマを変更し、操作に関係する列マスター キーとデータベース内の関連するキー メタデータにアクセスするための、アクセス許可が必要です。

インプレース暗号化は、次のいずれかの方法を使用してトリガーできます。

次のステップ

関連項目