Question

J'ai créé une clé asymétrique sur un de mes serveurs SQL (2008). Je 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.

La question est 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, quand je lance mon sproc pour obtenir le mot de passe, il retourne 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 préciser quelque chose.

Merci

Était-ce utile?

La solution

Ne pas déplacer les données cryptées à partir d'une base de données à l'autre. Techniquement est possible, vrai, mais vous compromettre probablement la clé dans le processus, donc je préfère ne pas vous dire 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écryptées avant le transfert et les systèmes de cryptage consacrer pour le transfert de données sont utilisées, comme TLS et SSL, qui éliminent le problème du déploiement et le 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 trop lents pour les opérations de données. Ce que tout le monde fait est qu'ils chiffrent les données avec une clé symétrique et encodent la clé symétrique avec une clé asymétrique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top