私はSQLServer 2008で動作する製品を使用しています。当然のことながら、それを提供する会社はSQLServerサポートを提供していません。製品をインストールしたときに、データベースを暗号化するためのパスワードを指定しました。別のサーバーでテストするために、製品の別のコピーを実行したいのですが。データベースを別のサーバーに復元し、その別のサーバーに製品をインストールしました。インストール時に同じパスワードを入力し、メインサーバーからバックアップを復元しました。ただし、エラーメッセージが表示されます。
System.Data.SqlClient.SqlException: An error occurred during decryption.
製品から。SQLServer Management Studioを使用してテーブルにアクセスできます。
私はこれを試しました:
最初のサーバー:
CREATE CERTIFICATE cert1 WITH SUBJECT = 'Certificate for my stuff'
BACKUP CERTIFICATE cert1 TO FILE = 'd:\backup\cert1.dat'
WITH PRIVATE KEY
(
ENCRYPTION BY PASSWORD = 'mypassword',
FILE = 'd:\backup\cert1_privatekey.dat'
)
2番目のサーバー:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mypassword'
CREATE CERTIFICATE cert1 FROM FILE = 'd:\cert1.dat'
WITH PRIVATE KEY
(
FILE = 'd:\cert1_privatekey.dat',
DECRYPTION BY PASSWORD = 'mypassword'
)
私は2番目のサーバーでもこれを試しました:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
しかし、それは非対称キーに関するエラーメッセージを与えました。
最初のサーバーから2番目のサーバーにバックアップを復元するにはどうすればよいですか?
更新:
データベースにも非対称キーと対称キーがあります。非対称キーを使用して対称キーを開くと、同じエラーが発生するので、それが機能していないと思います-どういうわけか、キーが使用できるように転送されていません。