徵狀

您會遇到問題,當您嘗試從 SQL Server 連接器移轉資料庫備份,Microsoft Azure 機碼儲藏室的 1.0.4.0 或較早的版本,Microsoft Azure 機碼儲藏室的 SQL Server 連接器 1.0.5.0。

原因

更新已採用 Microsoft Azure 金鑰保存庫所作的變更的 SQL Server 連接器的 1.0.5.0 版本程式會計算憑證碼的方式。在版本1.0.5.0,這項計算符合程式引擎用來支援下列轉移分析藍本的邏輯:

從:場所 Microsoft SQL Server 使用可延伸金鑰管理 (EKM)

到:使用 [將您自己的金鑰 (BYOK) 支援透明資料加密 (TDE)的 Microsoft Azure SQL 資料庫

由於此變更,當您嘗試還原資料庫備份,從版本 1.0.4.0 或較早版本時,可能會遇到問題。

解決方案

複製 SQL Server 的連接器,Microsoft Azure 機碼儲藏室的 1.0.4.0 或 sql2 的執行個體伺服器較早的版本。

  1. 若要變更密碼編譯提供者版本 1.0.4.0 至 sql2 伺服器上執行下列查詢。

    改變密碼編譯提供者的 AzureKeyVaultProvider

    從檔案 =

    'FilePath\FileName\SQL 伺服器連接器的 Microsoft Azure 金鑰 Vault\1.0.4.0\Microsoft.AzureKeyVaultService.EKM.dll'

  2. 使用 1.0.4.0 來建立新的非對稱式金鑰提供者。

    建立非對稱金鑰的 TDE_KEY_1040

    從提供者的 AzureKeyVaultProvider

    PROVIDER_KEY_NAME = 'key1',

    CREATION_DISPOSITION = OPEN_EXISTING

    此外,您現在應該可以還原備份。

  3. 若要還原的密碼編譯提供者,版本 1.0.5.0 的 sql2 上執行下列查詢。

    改變密碼編譯提供者的 AzureKeyVaultProvider

    從檔案 =

    'FilePath\FileName\SQL 伺服器連接器的 Microsoft Azure 金鑰 Vault\1.0.5.0\Microsoft.AzureKeyVaultService.EKM.dll'

  4. 若要能夠使用新的憑證指紋,執行下列查詢使用相同的非對稱金鑰或新的版本非對稱金鑰。

    改變資料庫加密金鑰

    伺服器的非對稱式金鑰 KeyName1050Version 的加密

其他相關資訊

假設您部署下列的 Microsoft SQL Server 執行個體:

  • SQL Server 執行個體 sql1 有 Azure 的金鑰保存庫 1.0.4.0 部署的 Microsoft SQL Server 的連接器。

  • SQL Server 執行個體 sql2 的 Azure 機碼儲藏室 1.0.5.0 部署的 Microsoft SQL Server 的連接器。

下列查詢用來建立部署在 Azure 機碼儲藏室相同的非對稱式金鑰從非對稱金鑰的 sql1 」 和 「 sql2 的執行個體。

CREATE ASYMMETRIC KEY TDE_KEY

FROM PROVIDER AzureKeyVaultProvider

WITH PROVIDER_KEY_NAME = 'key1',

CREATION_DISPOSITION = OPEN_EXISTING

請注意憑證碼長度不同。版本 1.0.5.0 指紋長於版本 1.0.4.0 憑證指紋。

範例 1.0.4.0 的指模:

- 0x2C5677D76F76D77F80

版本 1.0.5.0 指紋的範例:

- 0x373B314B78E8D59A0925494558FEF14B726216C5

附註 這兩個非對稱金鑰會建立相同的來源。

變更會造成問題發生在備份及還原操作。

範例:

  • 您必須在 Azure 機碼儲藏室 sql1 執行個體中非對稱金鑰加密的資料庫備份。

  • Sql2 執行個體已建立非對稱金鑰。

如果您嘗試還原 sql2 執行個體的備份,還原會失敗,並且會傳回類似下列的錯誤訊息:

訊息 33111,層次 16,狀態第 4 行LineNumber

找不到伺服器的非對稱式金鑰指紋為 '0x2C5677D76F76D77F80'。

查詢以擷取每個索引鍵的指模如下所示:

select thumbprint,* from master.sys.asymmetric_keys

查詢以擷取每個 TDE 資料庫的指模如下所示:

select DatabaseName(ddek.database_id) as DatabaseName,ak.name as[Asymmetric key Name], ak.thumbprint From sys.dm_database_encryption_keys ddek inner join master.sys.asymmetric_keys ak on ak.thumbprint=ddek.encryptor_thumbprint

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?

感謝您的意見反應!

×