使用具有安全記憶體保護區的 Always Encrypted 就地設定資料行加密
適用於: SQL Server 2019 (15.x) 與更新版本 - 僅限 Windows Azure SQL 資料庫
具有安全記憶體保護區的 Always Encrypted 支援在資料庫引擎的安全記憶體保護區內,就地進行對資料庫資料行的密碼編譯作業。 就地加密讓您無須針對這類作業將資料移出資料庫,使密碼編譯作業更快且更加可靠。
注意
雖然就地加密具有效能優點,但在大型資料表上進行密碼編譯作業可能需要很長時間並取用大量資源,且可能因此影響或降低應用程式的效能和可用性。
就地加密也可供使用 ALTER TABLE ALTER COLUMN (Transact-SQL) 陳述式觸發密碼編譯作業,這在沒有記憶體保護區情況下是不可能的。
Prerequisites
所支援密碼編譯作業及針對作業所需要使用資料行加密金鑰的需求如下:
- 加密純文字資料行。 用來加密資料行的資料行加密金鑰必須已啟用記憶體保護區。
- 使用新加密類型和/或新的資料行加密金鑰重新加密已加密的資料行。 目前的資料行加密金鑰和新資料行加密金鑰 (若與目前的金鑰不同) 都必須已啟用記憶體保護區。
- 解密已加密的資料行 - 保護資料行的資料行加密金鑰必須已啟用記憶體保護區。
如需如何確認資料行加密金鑰已啟用記憶體保護區的資訊,請參閱針對具有安全記憶體保護區的 Always Encrypted 管理金鑰。
您也需要確定環境符合使用安全記憶體保護區執行陳述式的一般必要條件。
觸發密碼編譯作業之使用者或應用程式必須具備對包含受影響資料行資料表進行結構描述變更的權限,以及存取作業中所涉及資料行主要金鑰和資料庫中相關金鑰中繼資料的權限。
您可以使用下列其中一種方法來觸發就地加密:
- 從 SQL Server Management Studio 或自訂應用程式執行 ALTER TABLE ALTER COLUMN (Transact-SQL)。 請參閱使用 Transact-SQL 就地設定資料行加密。
- The Always Encrypted 精靈
- Set-SqlColumnEncryption Cmdlet。 請參閱使用 PowerShell 就地設定資料行加密。
- 資料層應用程式 (DAC) 封裝。 請參閱使用 DAC 封裝就地設定資料行加密。
下一步
- 使用 Transact-SQL 就地設定資料行加密
- 使用具有安全記憶體保護區的 Always Encrypted 在資料行上建立及使用索引
- 使用具有安全記憶體保護區的 Always Encrypted 開發應用程式