データベースマスターキーは、SQLServerがインストールされているマシンに固有のサーバーマスターキーを使用して暗号化されます。データベースを別のサーバーに移動すると、ローカルサーバーのキーが異なる可能性が高いため、データベースのマスターキーを自動的に復号化して開くことができなくなります。データベースマスターキーを復号化できない場合、それに依存する他のもの(証明書、対称キーなど)を復号化することはできません。
基本的に、データベースマスターキーを新しいサーバーキーに対して再暗号化する必要があります。これは、次のスクリプトで実行できます(管理者権限を使用):
-- 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
データベースマスターキーを作成するときは、サービスマスターキーを使用できないシナリオでパスワードを使用してキーを開くことができるように、常にパスワードも指定する必要があることに注意してください。そのパスワードがどこかに保存されていることを願っています。
または、データベースマスターキーのバックアップを復元することもできますが、ソースサーバーではなく、ターゲットサーバー用に作成されたものが必要です。
バックアップもパスワードも持っていない場合は、新しいパスワードでデータベースマスターキーを削除して再作成する必要があるため、新しいサーバーで暗号化されたデータを復元できるかどうかはわかりません。これにより、依存するキーとデータがすべて削除されます。