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