Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Errore di apertura della chiave master di SQL Server 2008 al cambio del server fisico

La chiave master del database viene crittografata utilizzando la chiave master del server, specifica per la macchina su cui è installato SQL Server. Quando si sposta il database su un altro server, si perde la capacità di decrittografare e aprire automaticamente la chiave master del database perché molto probabilmente la chiave del server locale sarà diversa. Se non riesci a decifrare la chiave master del database, non puoi decifrare nient'altro che dipenda da essa (certificati, chiavi simmetriche, ecc.).

Fondamentalmente, vuoi crittografare nuovamente la chiave master del database rispetto alla nuova chiave del server, cosa che può essere eseguita con questo script (usando i privilegi di amministratore):

-- Reset database master key for server (if database was restored from backups on another server)
OPEN MASTER KEY DECRYPTION BY PASSWORD = '---your database master key password---'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
GO

Nota che quando crei una chiave principale del database, dovresti sempre fornire anche una password in modo da poter aprire la chiave usando la password nello scenario in cui la chiave principale del servizio non può essere utilizzata - si spera che la password sia memorizzata da qualche parte!

In alternativa, puoi ripristinare un backup della chiave master del database, ma ne hai bisogno di uno che è stato creato per il server di destinazione, non per il server di origine.

Se non hai né un backup né una password, non sono sicuro che sarai in grado di recuperare i dati crittografati sul nuovo server, poiché dovrai eliminare e ricreare la chiave principale del database con una nuova password, che ucciderà tutte le chiavi e i dati dipendenti.