Главный ключ базы данных шифруется с использованием главного ключа сервера, который зависит от компьютера, на котором установлен SQL Server. Когда вы перемещаете базу данных на другой сервер, вы теряете возможность автоматически расшифровывать и открывать главный ключ базы данных, поскольку ключ локального сервера, скорее всего, будет другим. Если вы не можете расшифровать главный ключ базы данных, вы не можете расшифровать все, что от него зависит (сертификаты, симметричные ключи и т. Д.).
Как правило, вы хотите повторно зашифровать главный ключ базы данных по новому ключу сервера, что можно сделать с помощью этого сценария (с правами администратора):
-- 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
Обратите внимание, что при создании главного ключа базы данных вы также должны всегда указывать пароль, чтобы вы могли открыть ключ с помощью пароля в сценарии, где мастер-ключ службы не может быть использован - возможно, вы получили этот пароль где-то хранится!
Кроме того, вы можете восстановить резервную копию главного ключа базы данных - но вам нужен тот, который был создан для целевого сервера, а не исходного сервера.
Если у вас нет ни резервной копии, ни пароля, я не уверен, что вы сможете восстановить зашифрованные данные на новом сервере, поскольку вам придется удалить и заново создать главный ключ базы данных с помощью новый пароль, который уничтожит все зависимые ключи и данные.