2017-07-28 2 views
0
service

.NET Framework Ver = 4.6.2 , Base de données = SQL Server 2016Fonction toujours chiffrée - Impossible de déchiffrer la colonne. Appel de Windows App

App Type = service Windows

Nous travaillons sur la fonction "Toujours Encrypted" dans le SQL 2016 db pour effectuer le cryptage sur certaines colonnes de données client. Notre application Web est construite dans l'architecture ASP.NET MVC et fonctionne parfaitement avec cette nouvelle fonctionnalité. Nous avons copié et importé le certificat du serveur de base de données sur le serveur Web IIS. Et l'application web fonctionne bien. Mais lorsque nous essayons d'accéder à la base de données à partir d'une application de service Windows s'exécutant sur un serveur distinct, elle lève l'exception suivante.

Impossible de déchiffrer la colonne 'ColumnX'. Impossible de déchiffrer une clé de chiffrement de colonne à l'aide du fournisseur de magasin de clés: 'MSSQL_CERTIFICATE_STORE'. Les 10 derniers octets de la clé de chiffrement de colonne chiffrée sont: '76 -34-51-DA-41-8F-52-D1-A1-EE '. Le jeu de clés n'existe pas

Nous avons copié et importé le même certificat avec les étapes similaires sur le serveur exécutant l'application Windows Service.

S'il vous plaît suggérer, s'il me manque quelque chose dans l'installation du certificat. Avons-nous besoin d'éditer quelques propriétés dans le certificat installé?

Répondre

1

La fonctionnalité Toujours chiffré nécessite pour l'utilisateur qui souhaite accéder à la base de données d'avoir une clé publique et une clé privée.

À partir du message Keyset does not exist Je suppose que vous avez importé des clés seulement partiellement ou seulement une partie de l'ensemble.

Modifier
Avez-vous accès à ces éléments? %ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys OU C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys

Habituellement, lorsque la clé privée est manquant ou il y a une erreur d'autorisation d'accéder au dossier MachineKey (registre). Il donne l'erreur "Keyset does not exist".

+0

Il s'agissait d'un problème d'autorisation sur le certificat utilisé dans le serveur Windows. Après avoir donné l'accès en lecture à un groupe d'utilisateurs particulier, il commence à travailler .. – Karan

+0

@Karan: Je suis heureux que cela a commencé à travailler pour vous :) – tukan