Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server始终加密-找不到证书(ODBC)_Sql Server_Odbc_Oledb_Always Encrypted_Sqlncli - Fatal编程技术网

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

Sql server SQL Server始终加密-找不到证书(ODBC),sql-server,odbc,oledb,always-encrypted,sqlncli,Sql Server,Odbc,Oledb,Always Encrypted,Sqlncli,我在尝试针对SQL Server 2016始终加密列测试传统的经典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]

我在尝试针对SQL Server 2016始终加密列测试传统的经典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.
我已经检查了证书存储,它就在那里:

如果将驱动程序版本切换到11,则会出现
类型不匹配
错误,我认为这是因为v11不支持始终加密,所以忽略它


任何帮助都将不胜感激

设法对它进行了排序。原来问题与权限有关

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


这就解决了这个问题,尽管很明显,在生产环境中,您应该授予IIS AppPool用户访问权限,而不是“所有人”

证书似乎安装在当前用户证书存储中,而ASP应用程序正在另一个帐户下运行。尝试按说明在本地计算机存储中导入CMK证书,以便所有用户都可以使用。我已导出证书(包括私钥)并将其导入本地计算机\个人\证书。仍然会得到相同的错误。错误消息似乎表明ASP正在当前用户存储中查找证书,但由于某些原因找不到。请添加一个屏幕截图,上面添加了“活动证书路径”选项卡。谢谢