2017-05-24 38 views
-1

我通過.Net代碼導入CSV並獲取數據表中的數據並嘗試使用SqlBulkCopy批量插入,但我收到證書錯誤。當我嘗試執行其他操作時,只有當我執行SqlBulkCopy時沒有證書錯誤。這是錯誤的描述總是加密的SqlBulkCopy列

無法解密使用密鑰存儲提供商列加密密鑰: 「MSSQL_CERTIFICATE_STORE」。加密列 加密密鑰的最後10個字節是:'7F-1D-20-E1-43-0B-B5-92-66-78'。證書 指紋'XXXXXXXXXXXXXXXXXXXXXXXXXX'證書庫中找不到 '我'在證書位置'CurrentUser'。驗證數據庫中列主密鑰定義中的證書 路徑是否正確, 和證書已正確導入證書 location/store。參數名稱:masterKeyPath

我在本地機器上導入了證書。下面是代碼 我有DT數據表對象的數據。這是從worksheet.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有通過工作表ExportDataTableAsString返回DataTable對象。當我直接使用SQLbulkcopy的數據表時,我得到了缺少證書的錯誤。

有人可以幫助我,並建議更好的方式來做到這一點。

回答

0

證書上點擊右鍵 - 所有任務 - 管理私鑰 - 添加用戶

IIS應用程序池[默認應用]爲我工作。