Devo eseguire una copia locale di un database SQL Server remoto. L'ho fatto utilizzando Attività> Backup da Management Studio. Ho quindi ripristinato localmente il backup, che sembra avere tutto: tabelle, utenti, chiave simmetrica e certificato.Ripristino del database SQL Server - Chiave principale non in apertura
Quando si tenta di eseguire una selezione che mi richiede di aprire la chiave simmetrica e decrittografare dal certificato, ottengo questo errore:
Please create a master key in the database or open the master key in the session before performing this operation.
Perché mi viene chiesto per questo, e perché non lo fa si apre automaticamente come fa sul server remoto?
Ho provato a cambiare la chiave principale, ma senza la password originale, non posso fare molto.
Hmm, spero che non è facile per ripristinare una chiave master senza la password, è lì che la sicurezza di tutto proviene.Immagino che questa potrebbe essere una lezione sull'uso della crittografia a chiave pubblica per proteggere la tua chiave master, e fare il backup del certificato in un posto sicuro. –
@Petey forse mi manca qualcosa di ovvio qui; sulla macchina originale, non è necessario aprire la chiave, è sufficiente eseguire la stored procedure. C'è qualche difetto nella mia esportazione/importazione? – ashes999
Il modo più semplice per risolverlo è eseguire il backup della chiave master del database e assegnargli una password per proteggere il file. Quindi ripristinare la chiave master del database utilizzando la password per il database ripristinato. Ciò funzionerà senza che tu debba conoscere la password originale utilizzata per creare il DMK a condizione che il DMK venga crittografato anche da SMK sul tuo sistema di produzione, che è per impostazione predefinita a meno che la crittografia per chiave non venga rilasciata. –