2017-05-24 1 views
-1

J'importe le code CSV via .Net et j'obtiens les données dans la table de données en essayant de les insérer en bloc en utilisant SqlBulkCopy mais j'obtiens une erreur de certificat. quand j'essaye de faire l'autre opération il n'y a aucune erreur de certificat c'est seulement quand j'effectue SqlBulkCopy. Voici la description d'erreurSqlBulkCopy avec la colonne Toujours chiffré

Impossible de déchiffrer une clé de chiffrement de la colonne à l'aide des principaux fournisseurs de magasin: « MSSQL_CERTIFICATE_STORE ». Les 10 derniers octets de la clé de cryptage de la colonne cryptée sont: '7F-1D-20-E1-43-0B-B5-92-66-78'. Certificat avec thumbprint 'XXXXXXXXXXXXXXXXXXXXXXXXXX' introuvable dans le magasin de certificats 'Mon' dans l'emplacement du certificat 'CurrentUser'. Vérifiez le certificat chemin dans la définition de la clé principale de colonne dans la base de données est correcte, et le certificat a été importé correctement dans le certificat emplacement/magasin. Nom du paramètre: masterKeyPath

J'ai effectué l'importation du certificat sur la machine locale. ci-dessous est le code j'ai des données dans l'objet dt datatable. cela est renvoyé à partir de 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) 

prenant la référence - https://dba.stackexchange.com/questions/160577/is-it-possible-to-bulk-insert-data-into-a-table-that-has-columns-encrypted-with

si nous comme ci-dessus que nous devons faire le tour 2 pour insérer les data.i ont datatable objet retourné par la feuille de travail ExportDataTableAsString. quand j'utilise directement le datatable pour SQLbulkcopy je reçois le certificat manquant erreur. Quelqu'un peut-il m'aider à ce sujet et suggérer une meilleure façon de le faire.

Répondre

0

Faites un clic droit sur le certificat - Toutes les tâches - Gérer les clés privées - Ajouter un utilisateur

IIS AppPool [DefaultAppPool] a travaillé pour moi.