UPDATE ステートメントを使用して SQL Server 2005 の既存の列を暗号化し、古いコンテンツを新しい暗号化された列に移動したいと考えています。
したがって、対称と非対称の 2 つの選択肢があります。
私が抱えている問題は、対称キーを使用すると、次のような列を読み取るためにパスワードを SP に埋め込む必要があることです。
-- Create key (at some earlier point)
create symmetric key sk_user_profile with algorithm = aes_192 encryption by password = 'P@ssword!!';
-- Now encrypt the contents
-- open the key so that we can use it
open symmetric key sk_user_profile decryption by password = 'P@ssword!!';
UPDATE users
SET password_enc = encryptbykey(key_guid('sk_user_profile'), password_plain, 1, user_id)
close symmetric key sk_user_profile
データを選択したい場合でも、キーを再度開く必要があります
open symmetric key sk_user_profile decryption by password = 'P@ssword!!';
ストアド プロシージャ内にプレーンテキストのパスワードを埋め込んでいるので、これは重要な点ではありません。
いくつかの質問
- これを回避する方法はありますか?つまり、このパスワードを使用して証明書を作成し、代わりに証明書を参照しますか?
- この証明書は (SSL のように) 購入する必要がありますか、それとも独自に作成できますか?
- この方法は、フェールオーバー クラスター化されたデータベース全体で拡張可能ですか。つまり、暗号化はマシンに基づいておらず、提供されたパスワードのみに基づいています。したがって、フェイルオーバーは引き続きパスワードを読み取ることができます
ご協力いただきありがとうございます