SQL Server始终加密 - 找不到证书(ODBC)

时间:2018-03-06 09:31:21

标签: sql-server odbc oledb always-encrypted sqlncli

我在尝试针对SQL Server 2016 Always Encrypted列测试遗留经典ASP应用程序时遇到了问题。

这是ASP代码的示例:

conn.ConnectionString = "Driver={ODBC Driver 13 for SQL Server};Server {myserver};UID=myuser;pwd=mypw;Database=test;ColumnEncryption=Enabled;"
conn.open

Dim sql
sql = "SELECT TOP 10 [text]  FROM TEST"

rs.open sql, conn

“text”列已加密。执行时,我收到此错误:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Certificate in key 
path 'CurrentUser/My/704F32193389CACD95E102DA881006F33936C6DE' not found.

我已经检查了证书商店,它就在那里:

Certificate store

Certificate Path Tab

如果我将驱动程序版本切换为11,我会收到type mismatch错误,我认为这是因为v11不支持Always Encrypted,所以只是忽略它。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

管理以对其进行排序。原来问题是权限相关。

转到证书 - 本地计算机\个人\证书。右键单击证书,单击“管理私钥”。完全访问“每个人”。

这修复了它,虽然显然在生产中你应该授予对IIS AppPool用户的访问权限,而不是“所有人”。