SQL Server 2008 Open Master Key error upon physical server change over

后端 未结 2 1122
傲寒
傲寒 2020-12-23 17:29

I copied a SQL Server database from one system to the next, identical setup, but completely different physical machine. I used Norton Ghost and recoverd files manually, for

2条回答
  •  渐次进展
    2020-12-23 18:11

    The database master key is encrypted using the server master key, which is specific to the machine where SQL Server is installed. When you move the database to another server, you lose the ability to automatically decrypt and open the database master key because the local server key will most likely be different. If you can't decrypt the database master key, you can't decrypt anything else that depends on it (certificates, symmetric keys, etc).

    Basically, you want to re-encrypt the database master key against the new server key, which can be done with this script (using admin privileges):

    -- 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
    

    Note that when you create a database master key, you should always provide a password as well so that you can open the key using the password in the scenario where the service master key cannot be used - hopefully you've got that password stored somewhere!

    Alternatively, you can restore a backup of the database master key - but you need one that was created for the target server, not the source server.

    If you haven't got either a backup or a password, then I'm not sure you will be able to recover the encrypted data on the new server, as you will have to drop and recreate the database master key with a new password, which will kill any dependent keys and data.

提交回复
热议问题