0

「別のデータベースのSQL証明書を使用する」の質問とよく似ていますが、今回はデータベースを別のサーバーに移動します。同じコードが引き続き機能することを保証するために、必要な証明書を移動する方法は?

EncryptByCert(Cert_ID('CertifiacteName'), 'SecretData')
4

1 に答える 1

1

実際、証明書はデータベースのバックアップにあります。

また、ほとんどの場合、証明書はデータベースマスターキーによって暗号化されています。したがって、必要なのは、データベースマスターキー(DMK)をターゲットインスタンスで機能させることです。

デフォルトでは、DMKはパスワードとサービスマスターキー(SMK)によって保護されています。また、デフォルトでは、キーは自動的に開かれます。つまり、証明書を使用する権限がある場合は、必要なときに自動的に復号化されます。

新しいインスタンスではSMKが異なるため、自動的に発生することはありません。ただし、パスワードでDMKを開くことができます。したがって、必要なもの-DBを移動し、マスターキーを開き、新しいサーバーSMKmsdnによって暗号化されるように変更します。

新しいインスタンスで行う必要があること:

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'your password (from previous instance)'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
于 2012-10-25T11:49:47.577 に答える