【发布时间】:2018-08-14 02:42:05
【问题描述】:
我在尝试针对 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
“文本”列已加密。当它执行时,我得到这个错误:
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.
我检查了证书存储,它就在那里:
如果我将驱动程序版本切换到 11,我会收到 type mismatch 错误,我认为这是因为 v11 不支持 Always Encrypted,所以忽略它。
任何帮助将不胜感激!
【问题讨论】:
-
证书似乎安装在当前用户证书存储中,并且 ASP 应用程序在不同的帐户下运行。尝试按照in this documentation 的说明在本地机器存储中导入 CMK 证书,以便所有用户都可以使用它。
-
我已导出证书(包括私钥)并将其导入本地计算机\个人\证书。仍然得到同样的错误。该错误消息似乎表明 ASP 正在当前用户存储中查找证书,但由于某种原因没有找到。
-
能否请您添加一张带有活动证书路径选项卡的屏幕截图?
-
添加在上面。谢谢
标签: sql-server odbc oledb always-encrypted sqlncli