わかりました、ここに私の問題があります。DB マスター キー、証明書、および対称キーを使用して、SQL Server 2005 でデータ暗号化を行っています。秘密鍵を使用して証明書を復元できる必要があります。しかし、PRIVATE KEY を使用して CREATE CERTIFICATE を実行すると、証明書は DB に取り込まれますが、秘密鍵は表示されません。以下は、テストのために私が従う手順です。
データベース マスター キーを作成します。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '12345'
証明書を作成する
CREATE CERTIFICATE MyCert
WITH SUBJECT = 'My First Certificate',
EXPIRY_DATE = '1/1/2199';
MyCert で暗号化された対称キーを作成します。
CREATE SYMMETRIC KEY MySymmetricKey
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE MyCert
以下の select ステートメントを呼び出して、キーと証明書がそこにあることを示します。彼らです。マスター DB キー、対称キー、および証明書はすべてそこにあります。
SELECT * FROM sys.symmetric_keys
SELECT * FROM sys.certificates
データベース証明書とキーのバックアップを作成する
それらを同じフォルダーに入れてみましたが、どちらも機能しませんでした。
BACKUP CERTIFICATE MyCert TO FILE = 'C:\SQLDatabase\MyCert\MyCert.cert'
WITH PRIVATE KEY ( FILE = 'C:\SQLDatabase\MyKey\MySymmetricKey.key' ,
ENCRYPTION BY PASSWORD = '12345' )
キーと証明書をドロップし、それらがなくなっていることを確認します。
DROP SYMMETRIC KEY MySymmetricKey
DROP CERTIFICATE MyCert;
ファイルでのみ作成された証明書の復元はありません。WITH PRIVATE KEY を使用して create certificate を呼び出します。
これを実行すると、証明書が表示されますが、キーは付属していません。
それらがフォルダー内にあり、SQL がフォルダーにアクセスできることを確認しました。
ALTER CERTIFICATE WITH PRIVATE KEY も試しましたが、まだ何もしていません。
私は何が欠けていますか?
CREATE CERTIFICATE PayGoDBCert
FROM FILE = 'C:\SQLDatabase\MyCert\MyCert.cert'
WITH PRIVATE KEY (FILE = 'C:\SQLDatabase\MyKey\MySymmetricKey.key' ,
DECRYPTION BY PASSWORD = '12345')
SELECT * FROM sys.symmetric_keys
SELECT * FROM sys.certificates