Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Erro de chave mestra aberta do SQL Server 2008 ao alterar o servidor físico


A chave mestra do banco de dados é criptografada usando a chave mestra do servidor, que é específica da máquina em que o SQL Server está instalado. Ao mover o banco de dados para outro servidor, você perde a capacidade de descriptografar e abrir automaticamente a chave mestra do banco de dados porque a chave do servidor local provavelmente será diferente. Se você não puder descriptografar a chave mestra do banco de dados, não poderá descriptografar mais nada que dependa dela (certificados, chaves simétricas etc.).

Basicamente, você deseja criptografar novamente a chave mestra do banco de dados com a nova chave do servidor, o que pode ser feito com este script (usando privilégios de administrador):
-- 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

Observe que quando você cria uma chave mestra de banco de dados, você deve sempre fornecer uma senha também para poder abrir a chave usando a senha no cenário em que a chave mestra de serviço não pode ser usada - esperamos que você tenha essa senha armazenada em algum lugar!

Como alternativa, você pode restaurar um backup da chave mestra do banco de dados - mas precisa de uma que tenha sido criada para o servidor de destino, não para o servidor de origem.

Se você não tiver um backup ou uma senha, não tenho certeza se você poderá recuperar os dados criptografados no novo servidor, pois terá que descartar e recriar a chave mestra do banco de dados com uma nova senha, que matará quaisquer chaves e dados dependentes.