web-dev-qa-db-ja.com

暗号化されたMSSQLデータベースを復元するには何が必要ですか?

MSSQL TDE暗号化について理解しようとしています。

私はデータベースを暗号化するために次の手順に従いました:

1)マスターデータベースにマスターキーを作成します。

USE master
GO
CREATE MASTER KEY ENCRYPTION
BY PASSWORD='thepbpass';
GO

2)証明書を作成します。

CREATE CERTIFICATE mycert
WITH SUBJECT='mydb DEK';
GO

3)証明書をデータベースに関連付けます。

USE mydb
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE mycert;
GO

4)データベースを暗号化します。

ALTER DATABASE mydb
SET ENCRYPTION ON;
GO

5)証明書をエクスポートします。

BACKUP CERTIFICATE mycert TO FILE = 'path_to_file'  
GO

私の質問は:

サーバーが停止し、バックアップを復元する必要がある場合、復元に必要なものはすべてありますか?

私は以下を持っています:

  • 安全な場所に保存されている証明書。
  • 安全なマスターキーパスワードの知識。

秘密鍵または公開鍵について心配する必要がありますか?オンラインで秘密鍵と公開鍵についての議論を見てきましたが、それらが私の構成にどのように関連しているか、または手順1で作成したマスター鍵とどのように異なるのかわかりません。

3
cleverpaul

証明書なしで別のインスタンスにバックアップを復元することはできません。ソースサーバーから証明書を復元する必要があります。そうすると、バックアップからデータベースを復元できるはずです。

明らかに、あなたの証明書とマスターキーが復元に必要です。

MSSQLTREKブログ ここ ソースから証明書を復元するには(および、DMK(データベースマスターキー)がない場合は、宛先に作成する必要があります)、残りは通常のDB復元を実行するだけです暗号化されていない他のユーザーデータベースでの処理を処理します。

マスターキーを作成し(既にDMKがある場合はこれを行う必要はありません)、証明書のバックアップから証明書を作成し、それを解読するための秘密キーファイルとパスワードを提供します。

TDEが有効になっているデータベースのバックアップファイルも、データベース暗号化キーを使用して暗号化されます。その結果、これらのバックアップを復元するときは、データベース暗号化キーを保護する証明書を使用できる必要があります。つまり、データベースのバックアップに加えて、サーバーの証明書のバックアップを維持して、データの損失を防ぐ必要があります。証明書が利用できなくなると、データが失われます。

さらに参考にするために ここ および ここ

:インスタンス上の任意のデータベースでTDEを有効にすると、TEMPDBも自動的に暗号化されます。そのため、TDEを有効にするプロセス中に実際にTDE機能を使用していない他のデータベースに影響を与える可能性が高くなります。

1

簡単に言うと、間違いはステップ5です。秘密鍵を証明書でバックアップする必要があります。送信先サーバーで証明書を復元するために使用できるように、パスワードを保護する必要があります。

暗号化階層についてさらに学習することに集中すると役立つでしょう。 TDE証明書の秘密キーは、データベースマスターキーを復号化できる唯一のキーであり、DMKは、TDE対応データベースのページを直接暗号化および復号化する対称キーです。

BACKUP CERTIFICATE mycert TO FILE = 'Path_to_file.cer'  
    WITH PRIVATE KEY ( FILE = 'path_to_file.pvk' ,   
    ENCRYPTION BY PASSWORD = 'password to encrypt the file path_to_file.pvk' );  
GO  
1
Michael Keleher

これ読んだ? https://www.mssqltips.com/sqlservertip/3572/recovering-a-sql-server-tde-encrypted-database-successfully/ 私はこれを携帯電話から実行しているため、ウォークスルーできませんこのガイド。それは徹底的に見え、TDEへの進出中に見落としていたいくつかのことを述べています。

もちろん、標準の免責事項があります。うまくいけば、本番環境ではこれを行わないでください!初めてTDEを設定したときに、データベースファイルをサーバーから移動して使用を停止しました。キーをコピーしていないことに気付きませんでした。それはテストでしたので、大きな損失はありませんでしたが、それが本番データであった場合、私は確かに仕事を終えたでしょう。

0
S M