我正在通过 .Net 代码导入 CSV 并获取数据表中的数据并尝试使用 SqlBulkCopy 批量插入,但我收到证书错误。 当我尝试执行其他操作时,只有在执行 SqlBulkCopy 时才没有证书错误。这是错误描述
无法使用密钥存储提供程序解密列加密密钥: "MSSQL_CERTIFICATE_STORE"。加密列的最后 10 个字节 加密密钥为:"7F-1D-20-E1-43-0B-B5-92-66-78"。证书与 在证书存储中找不到指纹"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 证书位置"当前用户"中的"我的"。验证证书 数据库中列主密钥定义中的路径正确, 并且证书已正确导入到证书中 位置/商店。参数名称:主键路径
我在本地机器中进行了证书导入。 下面是代码 我在DT数据表对象中有数据。从工作表返回。Cells.ExportDataTableAsString.
Dim copy As New SqlBulkCopy(ConnString, SqlBulkCopyOptions.KeepIdentity Or SqlBulkCopyOptions.AllowEncryptedValueModifications)
copy.DestinationTableName = "Customer"
copy.ColumnMappings.Add("CustID", "CustID")
copy.ColumnMappings.Add("SSN", "SSN")
copy.WriteToServer(dt)
参考 - https://dba.stackexchange.com/questions/160577/is-it-possible-to-bulk-insert-data-into-a-table-that-has-columns-encrypted-with
如果我们按照上面的方式进行,我们需要做 2 轮来插入 data.i 有工作表导出数据表作为字符串返回的数据表对象。 当我直接使用数据表进行 SQLbulkcopy 时,我收到证书丢失错误。
有人可以帮助我解决这个问题并提出更好的方法吗?
右键单击证书 - 所有任务 - 管理私钥 - 添加用户
IIS AppPool[DefaultAppPool]为我工作。