7

対称鍵を使用して暗号化されたデータを含む既存のSQLServer2005データベースがあります。対称鍵はパスワードを使用して開かれます。このデータベースを使用するフロントエンドアプリケーションのアップグレードに取り組んでいます。これには、数十の新しいテーブル、ストアドプロシージャ、UDFなどの追加や、既存のテーブルとデータベースオブジェクトへの数十の変更が含まれます。そのために、既存の開発データベースのコピーを作成して、新しい開発が行われている間、現在のシステムを独立してサポート、保守、および更新できるようにします。

データベースをコピーするための良い方法は何ですか?通常は、既存のデータベースのバックアップを取り、それを新しいデータベースに復元します。しかし、暗号化されたデータを考えると、これは実現可能でしょうか?既存の対称鍵とパスワードを使用して、新しいデータベースのデータを暗号化し、さらに重要なことに復号化することはできますか?

代わりに、DTSを使用して既存のスキーマのみを転送したい場合があります。新しいデータベースに新しい対称鍵/パスワードを作成します。次に、アドホッククエリを記述してデータを転送し、既存のキー/パスワードを使用して復号化し、新しいデータベースで新しいキー/パスワードを使用して暗号化します。

これの核心は、単一のデータベースまたは同じサーバー上の多数のデータベースのデータを暗号化/復号化するのに対称鍵が適しているかどうかです。

4

1 に答える 1

3

参照している対称キーは、データベース マスター キー (DMK) です。それらはデータベース レベルで保持されるため、別の SQL サーバーへのバックアップ/復元は正常に機能するはずです (このスレッドで言及されているように、サービス アカウントが異なるという警告があります) 。

何かを行う前に、キーのバックアップがあることを確認してください (おそらく、既にこれを行っているはずです)。

USE myDB
GO
BACKUP MASTER KEY TO FILE = 'path_to_file'
    ENCRYPTION BY PASSWORD = 'password'
GO

この記事から:

データベース マスター キーを作成すると、提供されたパスワードでコピーが暗号化され、現在のデータベースに格納されます。コピーもサービス マスター キーで暗号化され、マスター データベースに格納されます。DMK のコピーにより、サーバーは DMK を自動的に復号化できます。これは、「自動キー管理」と呼ばれる機能です。自動キー管理を使用しない場合、セキュリティのために DMK に依存する証明書とキーを使用してデータを暗号化および/または復号化するたびに、OPEN MASTER KEY ステートメントを使用してパスワードを指定する必要があります。自動キー管理では、OPEN MASTER KEY ステートメントとパスワードは必要ありません。

于 2008-09-30T02:30:38.027 に答える