SQL Server 2008 透過的なデータ暗号化を設定した場合に別マシンで復元するには
SQL Server 2008 の透過的なデータ暗号化(TDE)を設定したデータベースのバックアップは、簡単にはリストアできないようになっています。これは、バックアップ ファイルや mdf ファイルが持ち出された(盗まれた)ことを想定しているためです(中身が簡単に参照できないようにしています)。
開発機から本番機へ、あるいはその逆へなど、別マシンへデータを移動させたい場合には、サーバー証明書(と秘密キー)のバックアップおよびリストアが必要になります。サーバー証明書(と秘密キー)をバックアップするには、次のように BACKUP CERTIFICATE ステートメントを実行します。
BACKUP CERTIFICATE MyServerCert TO FILE = 'C:\MyServerCert' WITH PRIVATE KEY ( FILE = 'C:\MyPrivKey' , ENCRYPTION BY PASSWORD = 'P@ssword' )
バックアップしたサーバー証明書(と秘密キー)は、次のように CREATE CERTIFICATE ステートメントを利用して、リストア(インポート)することができます。
-- データベース マスターキーの作成 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<StrongPassword>' go -- サーバー証明書のリストア(インポート) CREATE CERTIFICATE MyServerCert FROM FILE = 'C:\MyServerCert' WITH PRIVATE KEY ( FILE = 'C:\MyPrivKey' , DECRYPTION BY PASSWORD = 'P@ssword' )
このように同じサーバー証明書がリストアされている環境であれば、透過的なデータ暗号化を設定したデータベースであっても別のマシン上でリストア(やアタッチ)を行うことができ、データを参照することができるようになります。
BACKUP CERTIFICATE の詳細(ヘルプ)はこちらから
http://msdn.microsoft.com/ja-jp/library/ms178578.aspx
CREATE CERTIFICATE の詳細(ヘルプ)はこちらから
http://msdn.microsoft.com/ja-jp/library/ms187798.aspx