2010-05-10 6 views
0

J'ai créé une clé asymétrique sur un de mes serveurs SQL (2008). J'ai crypté un champ de mot de passe et je suis en mesure de récupérer ce mot de passe très bien sur mon serveur de développement.chiffrement SQL - clé asymétrique - 2ème serveur

La question entre en jeu où je dois déplacer ces données vers un serveur de production.

Voici le code de la clé qui a été créé:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='#########' 
CREATE ASYMMETRIC KEY UserEncryptionKey 
WITH ALGORITHM = RSA_2048 

Maintenant, quand je lance ceci sur le serveur de production, il crée la clé très bien. Cependant, lorsque j'exécute mon sproc pour obtenir le mot de passe, il renvoie NULL.

SQL:

SELECT EncryptByAsymKey(AsymKey_ID('UserEncryptionKey'), Password) 
    FROM Users WHERE UserName = '######' 

Toute réflexion sur ce que je dois faire pour obtenir le champ crypté pour travailler sur plusieurs serveurs SQL?

S'il vous plaît laissez-moi savoir si je dois clarifier quelque chose.

Merci

Répondre

0

Ne pas déplacer des données cryptées à partir d'une base de données à l'autre. Techniquement, c'est possible, c'est vrai, mais vous allez probablement compromettre la clé dans le processus, donc je ne vous dis pas comment le faire.

Lorsque les données sont échangées entre les sites, la procédure habituelle sépare la gestion des clés et le déploiement du transfert de données. Les données sont déchiffrées avant le transfert et des schémas de chiffrement dédiés au transfert de données sont utilisés, tels que TLS et SSL, ce qui élimine le problème du déploiement et du partage des clés de chiffrement réelles.

remarque Asa, normalement un ne pas crypter les données avec des clés asymétriques. Ils sont beaucoup trop lents pour les opérations de données. Ce que tout le monde fait, c'est crypter les données avec une clé symétrique, puis crypter la clé symétrique avec une clé asymétrique.

+0

Ok très bien, merci! – CodeLikeBeaker