「別のデータベースのSQL証明書を使用する」の質問とよく似ていますが、今回はデータベースを別のサーバーに移動します。同じコードが引き続き機能することを保証するために、必要な証明書を移動する方法は?
EncryptByCert(Cert_ID('CertifiacteName'), 'SecretData')
「別のデータベースのSQL証明書を使用する」の質問とよく似ていますが、今回はデータベースを別のサーバーに移動します。同じコードが引き続き機能することを保証するために、必要な証明書を移動する方法は?
EncryptByCert(Cert_ID('CertifiacteName'), 'SecretData')
実際、証明書はデータベースのバックアップにあります。
また、ほとんどの場合、証明書はデータベースマスターキーによって暗号化されています。したがって、必要なのは、データベースマスターキー(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