Как использовать безопасное шифрование существующего столбца в SQL Server 2005

StackOverflow https://stackoverflow.com/questions/3719042

Вопрос

Я хочу зашифровать существующую колонку в 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!!';

Что побеждает точку, не так ли, так как я встроен в просторный пароль в хранимой процедуре.

Некоторые вопросы

  1. Есть ли путь вокруг этого - то есть создание сертификата с помощью этого пароля, а затем вместо этого обращается к сертификату?
  2. Если бы этот сертификат должен быть приобретен (как SSL), или я могу создать свой собственный?
  3. Является ли этот метод масштабируемым через неудачные кластерные базы данных, то есть шифрование не основывается на машине, только пароль прилагается. Поэтому отказ может все еще можно прочитать пароли

Спасибо за вашу помощь

Это было полезно?

Решение

В основном то, что вам нужно сделать, это это:

create certificate MyEncryptionCertificate with subject = 'MyCertificate'

create symmetric key MySymmetricKey with algorithm = aes_256 encryption by certificate MyEncryptionCertificate

А потом:

open symmetric key MySymmetricKey decryption by certificate MyEncryptionCertificate

select encryptbykey(key_guid('MySymmetricKey'), 'tada')) EncryptedMessage

Я надеюсь, что этот блог поможет вам по пути.

SQL Server - Введение в SQL Server Encryption и Scrymetic Key Encryption Учебное пособие со сценарием

А также этот вход в блоге, в которой конкретно касается сертификатов в отказоустойчивой среде.

Решение с использованием сертификатов Аутентификация на производственных серверах

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top