我正在使用SQLServer2016EnterpriseEdition和密钥库。我正在尝试将多个键库附加到我的SQL实例,但它不起作用。
我通过这些指示为第一个密钥库-- testkeyvault1创建了EKM提供者并创建了凭证,从非对称密钥创建了一个新的数据库加密密钥,等等。我试图使用为第二个密钥库- testkeyvault2配置的第二个凭据重复这些相同的操作。
但是,我一直收到以下错误:
Msg 33049、级别16、状态2、第70行名称为“test2rsakey0”的键在提供程序中不存在,或者访问被拒绝。提供程序错误代码: 3112。(提供程序错误-没有可用的解释,有关详细信息,请咨询EKM提供程序)
Server显然查看了错误的密钥库。查看事件查看器也会显示如下所示:
Vault Name: testkeyvault1.vault.azure.net
Operation: getKeyByName
Key Name: test2rsakey0
Message: [error:112, info:404, state:0] The server responded 404, because the key name was not found. Please make sure the key name exists in your vault.如果我先添加testkeyvault2,然后对testkeyvault1重复这个过程,结果就会相反。因此,SQL连接器似乎只在第一个配置的密钥库中查找密钥。我甚至检查了注册表,并确保在以下路径中两个密钥库都存在密钥:Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider\Azure Key Vault\
我需要能够使用多个密钥库,因为一些客户希望提供对他们自己的密钥库的访问,以加密存储在我们服务器上的数据库。
有办法绕过这件事吗?有没有其他的解决方案来使用多个密钥库,或者允许客户使用BYOK模型?
发布于 2019-08-27 03:11:01
愚蠢的是,在Studio中打开一个新的选项卡解决了这个问题。我想,在创建凭据时,即使在同一个选项卡中创建和绑定第二个凭据,它似乎也会“粘住”创建凭证的选项卡。在新选项卡中运行相同的命令有效。
https://dba.stackexchange.com/questions/246307
复制相似问题