対称キーを持つデータベースを持つサーバーがあります (データベース -> セキュリティ -> 対称キー)。テストデータベースとして使用しているバックアップの複製データベースがありますが、そこにはこのキーがありません。
この対称キーを複製して (または古いものとまったく同じように新しいものを作成して)、既存のデータベースに配置するにはどうすればよいですか? 他のものと同じ値とキー名を持つ必要があります。
これは SQL Server 2008 上にあります。
対称キーを持つデータベースを持つサーバーがあります (データベース -> セキュリティ -> 対称キー)。テストデータベースとして使用しているバックアップの複製データベースがありますが、そこにはこのキーがありません。
この対称キーを複製して (または古いものとまったく同じように新しいものを作成して)、既存のデータベースに配置するにはどうすればよいですか? 他のものと同じ値とキー名を持つ必要があります。
これは SQL Server 2008 上にあります。
最初に対称キーを作成するときは、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 サーバーがデータの暗号化と復号化に使用するアルゴリズムであり、機能するには同じでなければなりません。
両方のデータベースで上記のスクリプトを実行できるはずです (もちろん、独自の値に置き換えます)。これにより、他のデータベースで暗号化されたデータが正常に復号化されます。
既存のキーがこの方法で作成されていない場合は、古いキーですべてを復号化し、新しいキーで再暗号化する必要があります。
キーの作成に関するいくつかの優れた情報源は、次の場所にあります。