1

Я хочу зашифровать существующий столбец в SQL Server 2005 с помощью инструкции 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 = '[email protected]!!'; 

-- Now encrypt the contents 
-- open the key so that we can use it 
open symmetric key sk_user_profile decryption by password = '[email protected]!!'; 

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 = '[email protected]!!'; 

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

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

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

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

+0

Существует шифрование по сертификату. –

ответ

1

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

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 – Introduction to SQL Server Encryption and Symmetric Key Encryption Tutorial with Script

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

Solution Using Certificates Authentication on Production Servers

+0

Pinal Dave !! Почему я не подумал об этом! Я надеялся, что есть способ сгенерировать сертификат с паролем. Однако это будет работать в кластерных средах. Итак, Web -> Failover Cluster -> (DB1/DB2) –

+0

@ Dominic Zukiewicz Вы не читали мое сообщение до конца. :) –

Смежные вопросы