Я хочу зашифровать существующий столбец в SQL Server 2005, используя инструкцию UPDATE, перемещая старое содержимое в новый зашифрованный столбец.
Поэтому у меня есть 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), или можноЯ создаю свою собственную?
- Масштабируется ли этот метод в отказоустойчивых кластеризованных базах данных, т. Е. Шифрование не основано на компьютере, только предоставляется пароль.Поэтому при сбое все равно можно прочитать пароли
Спасибо за помощь