Quando si crea la chiave simmetrica, in primo luogo, assicurarsi che si sta utilizzando il KEY_SOURCE, IDENTITY_VALUE e l'algoritmo parametri.
Se non l'hai già, creare la chiave master del database e il certificato per proteggere la chiave simmetrica.
-- Create Database Master Key
CREATE MASTER KEY ENCRYPTION BY
PASSWORD = 'Your Database Master Key Password here'
GO
-- Create Encryption Certificate
CREATE CERTIFICATE MyCertificateName
WITH SUBJECT = 'Your Certificate Description Here'
GO
-- Create Symmetric Key
CREATE SYMMETRIC KEY MyKeyName WITH
IDENTITY_VALUE = 'Enter a key description',
ALGORITHM = AES_256,
KEY_SOURCE = 'Enter a key phrase here (keep very secret)'
ENCRYPTION BY CERTIFICATE MyCertificateName;
Il parametro IDENTITY_VALUE viene usato per creare il GUID nella tabella sys.symmetric_keys, che deve essere la stessa in entrambi i database per lavorare.
Il parametro KEY_SOURCE viene utilizzato per creare la chiave vera e propria, quindi assicurarsi che sia esattamente la stessa e ben protetta.
L'algoritmo è naturalmente quale server SQL utilizza un algoritmo per crittografare e decrittografare i dati, che deve essere lo stesso a lavorare.
Si dovrebbe essere in grado di eseguire lo script precedente su entrambi i database (sostituito con i propri valori, ovviamente) e sarà decodificare con successo i dati crittografati in un altro database.
Se la chiave esistente non è stata creata in questo modo, sarà necessario decrittografare tutto con la vecchia chiave e ricodificarla di nuovo con quella nuova.
Un paio di buone fonti di creazione della chiave può essere trovato qui:
fonte
2010-04-07 05:02:12
penso "SQL Server 10" è probabilmente meglio conosciuto come "SQL Server 2008" – Andomar