使用具有安全記憶體保護區的 Always Encrypted 就地設定資料行加密

適用於:SQL Server 2019 (15.x) 及以後版本在 Windows Azure SQL 資料庫上

具有安全記憶體保護區的 Always Encrypted 支援在資料庫引擎的安全記憶體保護區內,就地進行對資料庫資料行的密碼編譯作業。 就地加密讓您無須針對這類作業將資料移出資料庫,使密碼編譯作業更快且更加可靠。

注意

儘管原地加密帶來效能提升,但在大型資料表上的密碼運算可能耗時漫長且耗費大量資源,進而影響並降低應用程式的效能與可用性。

原地加密也允許使用 ALTER TABLE ALTER COLUMN(Transact-SQL) 語句觸發密碼學操作,這在沒有 enclave 的情況下是無法實現的。

Prerequisites

所支援的密碼學作業,以及用於這些作業的資料行加密金鑰需求如下:

  • 加密純文字資料行。 用來加密資料行的資料行加密金鑰必須已啟用記憶體保護區。
  • 使用新加密類型和/或新的資料行加密金鑰重新加密已加密的資料行。 目前的資料行加密金鑰和新的資料行加密金鑰(若與目前的金鑰不同)都必須啟用 Enclave。
  • 解密加密的資料行 - 用來保護該資料行的資料行加密金鑰必須支援安全性區域。

如需了解如何確保資料行加密金鑰已啟用安全記憶體保護區,請參閱管理搭配安全記憶體保護區的 Always Encrypted 金鑰。

您也需要確定環境符合使用安全記憶體保護區執行陳述式的一般必要條件。

觸發密碼操作的使用者或應用程式必須擁有權限,可以對包含受影響欄位的資料表進行結構變更,並存取操作中涉及的欄位主金鑰,以及資料庫中相關的金鑰中繼資料。

您可以使用下列其中一種方法來觸發就地加密: