Frage

Ich habe einen asymmetrischen Schlüssel auf einem meiner SQL Server (2008). Ich verschlüsselte ein Passwort-Feld, und ich bin in der Lage, das Kennwort abzurufen nur auf meinem Entwicklungsserver.

Das Problem ins Spiel kommt, wo ich brauche diese Daten zu einem Produktionsserver zu bewegen.

Hier ist der Code für den Schlüssel, der erstellt wurde:

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

Nun, wenn ich dies auf dem Produktionsserver ausführen, erstellt es den Schlüssel nur in Ordnung. Allerdings, wenn ich meinen sproc führen Sie das Passwort zu erhalten, wird NULL zurückgegeben.

SQL:

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

Alle Gedanken auf, was ich tun muß, um das verschlüsselte Feld zur Arbeit auf mehr SQL-Server zu bekommen?

Bitte lassen Sie mich wissen, wenn ich brauche etwas zu klären.

Danke

War es hilfreich?

Lösung

Sie keine verschlüsselten Daten aus einer Datenbank in einer anderen verschieben. Technisch möglich ist, wahr, aber Sie werden die Schlüssel im Prozess wahrscheinlich Kompromisse so dass ich lieber nicht sagen, wie es zu tun.

Wenn Daten zwischen den Standorten ausgetauscht wird, trennt das übliche Verfahren der Schlüsselverwaltung und Bereitstellung von Datenübertragung. Die Daten werden entschlüsselt vor der Übertragung und dedicate Verschlüsselungsverfahren für die Datenübertragung verwendet werden, wie TLS und SSL, die das Problem der Bereitstellung und den Austausch der eigentlichen Verschlüsselungsschlüssel zu beseitigen.

Asa Randnotiz, in der Regel tut keine Verschlüsselung von Daten mit asymmetrischen Schlüsseln. Sie sind viel zu langsam für Datenoperationen. Was jeder tut, ist sie Daten mit einem symmetrischen Schlüssel verschlüsselt und dann den symmetrischen Schlüssel mit einem asymmetrischen Schlüssel verschlüsselt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top