Сертификат SQL Server и симметричный ключ
Мне нужно было зашифровать / расшифровать некоторые личные данные в моей базе данных, такие как номер кредитной карты и пароли.
Следуя инструкциям Microsoft, я успешно зашифровал и расшифровал данные.
Но после некоторого теста у меня есть вопросы.
Предположим, кто-то получает несанкционированный доступ к базе данных (взлом) и может просматривать базу данных в SSMS со своего собственного компьютера. Ужасно он видит, что у меня есть сертификат и симметричный ключ.
Для отображения данных в примерах показан следующий запрос
OPEN symmetric KEY symmetrickey1
decryption BY certificate certificate1
Now list the original ID, the encrypted ID
SELECT customer_id,
credit_card_number_encrypt AS
'Encrypted Credit Card Number',
CONVERT(VARCHAR, Decryptbykey(credit_card_number_encrypt)) AS
'Decrypted Credit Card Number'
FROM dbo.customer_data;
-- Close the symmetric key
CLOSE symmetric KEY symmetrickey1;
Если приведенный выше запрос возвращает данные и может увидеть кредитную карту, как можно защитить ее? Разве не нужно вводить пароль где-то в запросе?
Я уверен, что я что-то здесь упускаю. Кто-нибудь может мне это объяснить?
1 ответ
Я должен был включить пароль для сертификации
CREATE CERTIFICATE Certificate1
Encryption By Password='Password123'
WITH SUBJECT = 'Protect Data'
для получения данных
OPEN Symmetric KEY SymmetricKey1
DECRYPTION BY CERTIFICATE Certificate1 With Password='Password123'
;
select *,CONVERT(nvarchar(255),DECRYPTBYKEY(Credit_Card_No)) as
[Credit_Card_No3] from Customers
;
Close Symmetric Key SymmetricKey1