首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置始终加密功能时,Set-SqlColumnEncryption无法从ms证书存储中找到或检索主列密钥

设置始终加密功能时,Set-SqlColumnEncryption无法从ms证书存储中找到或检索主列密钥
EN

Stack Overflow用户
提问于 2018-02-13 05:20:19
回答 1查看 558关注 0票数 0

我正尝试在MS SQL Server 2016数据库的几列上实施始终加密功能。事实上,我已经在我的UAT DB上成功地实现了它。然而,当我尝试在我的生产数据库上执行相同的步骤时,我得到了以下错误:

Set-SqlColumnEncryption :未能使用密钥存储区提供程序'MSSQL_CERTIFICATE_ store‘解密列加密密钥。加密列加密密钥的最后10个字节是:‘xx-xx’。密钥集不存在

一些细节:我正在执行命令

代码语言:javascript
复制
Set-SqlColumnEncryption -ColumnEncryptionSettings $l_columnEncryptionSettings -InputObject $l_database

在powershell中。主列密钥位于运行该进程的帐户的ms sql用户存储区中。它可以在certmgr的“证书-当前用户\个人\证书”中看到,它包含公钥和私钥(显示证书信息显示“您有一个对应于此证书的私钥”)。

查看数据库中的Always-Encrypted Keys条目,Column Master Key显示密钥路径CurrentUser/my/<fingerprint>,其中<fingerprint>确实与MSSQL_CERTIFICATE_STORE中的证书指纹匹配。

我见过这个问题(Always Encrypted Feature - Failed to decrypt column. Call from Windows-Service App),但这里的“解决方案”要么不适用(我已经将公钥和私钥导入存储中),要么不清楚(它提到了对目录的“访问”,但没有提供哪种访问的详细信息,并且我正在处理的帐户确实具有对提到的目录的读取访问权限。)

最奇怪的是,我已经在同一台机器上为UAT DB (不同的DB、相同的SQL实例、不同的用户)成功地实现了它,但是我看不出两个设置之间有什么不同。

有没有人知道可能导致这个错误的原因或者如何纠正它?谢谢。

编辑:当我提出这个问题时,问题似乎是由于该功能的一些不正确的设置,所以这个问题是合理的。在进一步的调查中(见下文),它被证明是数据损坏,所以除了我自己,没有人可能会回答这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-13 07:29:45

CertMgr显示本地存储中的证书是用私钥导入的:打开证书清楚地显示“您有一个对应于此证书的私钥”,并且证书是从包含私钥的.pfx文件中导入的。但是,我从Misrosoft下载、编译并运行了"findprivatekey.exe“工具。我跑了

代码语言:javascript
复制
findprivatekey My currentUser -t "xx xx ... xx"

奇怪的是它回来的时候

FindPrivateKey失败,原因如下:无法获取私钥文件名

事实上,无论我如何尝试指定证书(指纹、CN等),它总是返回相同的失败。我删除了证书并重新运行了导入脚本。同样的剧本,不同的日子。然后一切都变好了。

我只能得出结论,包含私钥文件的目录不知何故被损坏了。

附录:

对于其他有类似问题的人,详细说明了损坏的原因并解决了问题:第二天,私有证书数据再次消失。技术人员敏锐的眼睛注意到私钥的文件路径(如重新安装证书后立即由findprivatekey命令所示)位于“漫游”配置文件子树中,尽管该帐户配置为本地配置文件。一些调查揭示了Windows的一个名为“凭据漫游”的功能。仔细阅读这篇文档:https://social.technet.microsoft.com/wiki/contents/articles/11483.credential-roaming.aspx,末尾有一节“证书变得无法使用或续订”,在本例中适用。发出命令certutil -user -repairstore My "{Serialnumer}"已修复此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48755679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档