徵狀
您會遇到問題,當您嘗試從 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.0.4.0 至 sql2 伺服器上執行下列查詢。
改變密碼編譯提供者的 AzureKeyVaultProvider
從檔案 =
'FilePath\FileName\SQL 伺服器連接器的 Microsoft Azure 金鑰 Vault\1.0.4.0\Microsoft.AzureKeyVaultService.EKM.dll'
-
使用 1.0.4.0 來建立新的非對稱式金鑰提供者。
建立非對稱金鑰的 TDE_KEY_1040
從提供者的 AzureKeyVaultProvider
PROVIDER_KEY_NAME = 'key1',
CREATION_DISPOSITION = OPEN_EXISTING
此外,您現在應該可以還原備份。
-
若要還原的密碼編譯提供者,版本 1.0.5.0 的 sql2 上執行下列查詢。
改變密碼編譯提供者的 AzureKeyVaultProvider
從檔案 =
'FilePath\FileName\SQL 伺服器連接器的 Microsoft Azure 金鑰 Vault\1.0.5.0\Microsoft.AzureKeyVaultService.EKM.dll'
-
若要能夠使用新的憑證指紋,執行下列查詢使用相同的非對稱金鑰或新的版本非對稱金鑰。
改變資料庫加密金鑰
伺服器的非對稱式金鑰 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 會使用描述軟體更新。