在Azure密钥库中,我手动创建了一个名为"Encrypt“的2048位RSA密钥。然后导入一个名为“导入”的.pfx 2048位RSA密钥。
回到MSSQL中,我可以使用以下“加密”密钥:
CREATE ASYMMETRIC KEY TDE_KEY
FROM PROVIDER AzureKeyVault_EKM_Prov WITH
PROVIDER_KEY_NAME = 'Encrypt',
CREATION_DISPOSITION = OPEN_EXISTING
Commands completed successfully.但是,如果我尝试使用"Import“键,则会发生以下情况:
CREATE ASYMMETRIC KEY TDE_KEY
FROM PROVIDER AzureKeyVault_EKM_Prov WITH
PROVIDER_KEY_NAME = 'Import',
CREATION_DISPOSITION = OPEN_EXISTING
Key with name 'Import' does not exist in the provider or access is denied. Provider error code: 2057. (Provider Error - No explanation is available, consult EKM Provider for details)我知道它至少可以看到键,因为它返回错误2057而不是3112 (没有找到键)。
不幸的是,2057不在Server连接器文档中的错误编号之列:https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/sql-server-connector-maintenance-troubleshooting?view=sql-server-2017#AppendixC
在Powershell中,这两个键看起来是并排的:
PS C:\> Get-AzKeyVaultKey -VaultName testvault
Vault/HSM Name : testvault
Name : Encrypt
Key Type : RSA
Key Size : 2048
Curve Name :
Version : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Id : https://testvault.vault.azure.net:443/keys/Encrypt/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Enabled : True
Expires :
Not Before :
Created : 10/13/2022 8:54:16 PM
Updated : 10/13/2022 8:54:16 PM
Recovery Level : Recoverable
Release Policy :
Tags :
Vault/HSM Name : testvault
Name : Import
Key Type : RSA
Key Size : 2048
Curve Name :
Version : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Id : https://testvault.vault.azure.net:443/keys/Import/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Enabled : True
Expires :
Not Before :
Created : 10/14/2022 4:59:37 PM
Updated : 10/14/2022 4:59:37 PM
Recovery Level : Recoverable
Release Policy :
Tags :最后一个注意事项,我给了这个帐户访问密钥库中所有东西的全部权限,这是肯定的。
如何在Azure密钥库中获取导入的密钥来使用TDE?
发布于 2022-10-21 09:19:03
不幸的是,2057不在Server连接器文档...中的错误编号之列。
它似乎从正式文档中缺失了,我将提出一些修改,以使这些项目被记录下来。这是非常罕见的,以下任何一个会被击中(除了2056年,谢谢防病毒软件!)
在此期间,以下是一些未发表的文章.请注意,可能有不同的原因,这些可能会被击中。
2054 - scp_err_GetThumbprintFromPublicKey
2055 - scp_err_GetPublicKeyBlob
2056 - scp_err_GetRegistryKeyPath
2057 - scp_err_ThumbprintExistedInRegistry
2059 - scp_err_ThumbprintMismatch
2060 - scp_err_GetKeyUriFromThumbprint在您的例子中,它是2057,这意味着URI +拇指指纹已经存在于注册表中。我还没有机会测试用什么不同的方式完成这一任务,但我的最佳猜测是以不同的名称导入相同的密钥(我并不是说总是这样,只是有意义),或者有人做了不-不和克隆/导入的注册表设置,他们不应该拥有<shrug>。
解决方案是删除AKV注册表路径下的违规注册表项,这在您的情况下是有效的。
https://dba.stackexchange.com/questions/318473
复制相似问题