使用具有安全記憶體保護區的 Always Encrypted 開發應用程式

適用於:SQL Server 2019 (15.x) 和更新版本 - 僅限 Windows Azure SQL Database

具有安全記憶體保護區的 Always Encrypted 會延伸 Always Encrypted,讓您在已加密敏感性資料庫資料行上使用更豐富的應用程式查詢功能。 其利用安全記憶體保護區技術,讓資料庫引擎中的查詢執行程式將加密資料行上計算委派給資料庫引擎處理序內的安全記憶體保護區。

必要條件

您的環境必須符合下列需求,才能藉由安全記憶體保護區支援 Always Encrypted。

  • SQL Server 執行個體或 Azure SQL Database 中的資料庫伺服器必須正確設定為支援適用/需要時的記憶體保護區和證明。 如需詳細資訊,請參閱設定安全記憶體保護區和證明
  • 請確定您的應用程式:
    • 藉由安全記憶體保護區使用用戶端驅動程式版本支援 Always Encrypted。

    • 連線到資料庫時啟用 Always Encrypted。

    • 設定證明通訊協定,判斷用戶端驅動程式是否必須在提交記憶體保護區查詢之前證明記憶體保護區,若必須證明,應該使用哪個證明服務。 最新的驅動程式版本支援下列證明通訊協定:

      • Microsoft Azure 證明 - 使用 Microsoft Azure 證明強制執行證明。
      • 主機守護者服務 - 強制證明使用主機守護者服務。
      • 無 - 允許在沒有證明的情況下使用記憶體保護區。

      下表指定特定 SQL 產品和記憶體保護區技術適用的證明通訊協定:

      產品 記憶體保護區技術 支援的證明通訊協定
      SQL Server 2019 (15.x) 和更新版本 VBS 記憶體保護區 主機守護者服務,無
      Azure SQL Database SGX 記憶體保護區 (DC 系列資料庫中) Microsoft Azure 證明
      Azure SQL Database VBS 記憶體保護區
    • 如果您使用證明,請設定對您環境有效的證明 URL。

具有安全記憶體保護區的 Always Encrypted 用戶端驅動程式

若要使用具有安全記憶體保護區的 Always Encrypted 開發應用程式,您需要支援安全記憶體保護區的 SQL 用戶端驅動程式版本。 用戶端驅動程式扮演下列關鍵角色:

  • 在將使用安全記憶體保護區的查詢提交給 SQL Server 或 Azure SQL Database 執行前,驅動程式會起始記憶體保護區證明 (若已設定),驗證安全記憶體保護區為可信任,並可以安全地使用該記憶體保護區來處理敏感性資料。 如需證明的詳細資訊,請參閱安全記憶體保護區證明
  • 用戶端驅動程式會透過交涉共用祕密,與記憶體保護區建立安全工作階段。
  • 驅動程式會使用共用祕密來加密記憶體保護區處理查詢時將需要的資料行加密金鑰,並將金鑰傳送到 SQL Server,其會將金鑰轉寄到解密金鑰的安全記憶體保護區。
  • 最後,驅動程式會提交查詢以執行,在安全記憶體保護區內部觸發計算。

下列用戶端驅動程式支援具有安全記憶體保護區的 Always Encrypted:

另請參閱