5

対称キーを持つデータベースを持つサーバーがあります (データベース -> セキュリティ -> 対称キー)。テストデータベースとして使用しているバックアップの複製データベースがありますが、そこにはこのキーがありません。

この対称キーを複製して (または古いものとまったく同じように新しいものを作成して)、既存のデータベースに配置するにはどうすればよいですか? 他のものと同じ値とキー名を持つ必要があります。

これは SQL Server 2008 上にあります。

代替テキスト

4

1 に答える 1

7

最初に対称キーを作成するときは、KEY_SOURCE、IDENTITY_VALUE、および ALGORITHM パラメーターを使用していることを確認してください。

まだ作成していない場合は、対称キーを保護するためにデータベース マスター キーと証明書を作成します。

-- Create Database Master Key 
CREATE MASTER KEY ENCRYPTION BY
PASSWORD = 'Your Database Master Key Password here' 
GO

-- Create Encryption Certificate 
CREATE CERTIFICATE MyCertificateName
WITH SUBJECT = 'Your Certificate Description Here' 
GO

-- Create Symmetric Key
CREATE SYMMETRIC KEY MyKeyName WITH
IDENTITY_VALUE = 'Enter a key description',
ALGORITHM = AES_256, 
KEY_SOURCE = 'Enter a key phrase here (keep very secret)'
ENCRYPTION BY CERTIFICATE MyCertificateName;
  • IDENTITY_VALUE パラメーターは、sys.symmetric_keys テーブルに GUID を作成するために使用されます。GUID が機能するには、両方のデータベースで同じである必要があります。

  • KEY_SOURCE パラメーターは、実際のキー自体を作成するために使用されるため、これがまったく同じであり、十分に保護されていることを確認してください。

  • ALGORITHM はもちろん、SQL サーバーがデータの暗号化と復号化に使用するアルゴリズムであり、機能するには同じでなければなりません。

両方のデータベースで上記のスクリプトを実行できるはずです (もちろん、独自の値に置き換えます)。これにより、他のデータベースで暗号化されたデータが正常に復号化されます。

既存のキーがこの方法で作成されていない場合は、古いキーですべてを復号化し、新しいキーで再暗号化する必要があります。

キーの作成に関するいくつかの優れた情報源は、次の場所にあります。

于 2010-04-07T05:02:12.473 に答える