徵狀

您會遇到問題,當您嘗試從 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 產品確實有上述問題。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×