Hlavní klíč databáze je zašifrován pomocí hlavního klíče serveru, který je specifický pro počítač, na kterém je nainstalován SQL Server. Když databázi přesunete na jiný server, ztratíte možnost automaticky dešifrovat a otevřít hlavní klíč databáze, protože klíč místního serveru bude s největší pravděpodobností jiný. Pokud nemůžete dešifrovat hlavní klíč databáze, nemůžete dešifrovat nic jiného, co na něm závisí (certifikáty, symetrické klíče atd.).
V zásadě chcete znovu zašifrovat hlavní klíč databáze proti novému klíči serveru, což lze provést pomocí tohoto skriptu (s oprávněními správce):
-- 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
Pamatujte, že když vytváříte hlavní klíč databáze, měli byste vždy zadat také heslo, abyste mohli klíč otevřít pomocí hesla ve scénáři, kdy hlavní klíč služby nelze použít - doufejme, že toto heslo máte někde uložené!
Alternativně můžete obnovit zálohu hlavního klíče databáze – ale potřebujete ten, který byl vytvořen pro cílový server, nikoli pro zdrojový server.
Pokud nemáte zálohu ani heslo, nejsem si jistý, zda budete schopni obnovit zašifrovaná data na novém serveru, protože budete muset zahodit a znovu vytvořit hlavní klíč databáze s novým heslem, která zabije všechny závislé klíče a data.