Я хочу применить шифрование на уровне столбца SQL с использованием симметричных ключей. Первоначальные шаги, необходимые для создания основного ключа базы данных, сертификатов и симметричных ключей, кажутся прямолинейными, и я успешно тестировал данные шифрования/дешифрования с помощью Symmetric Keys.
Однако, как только данные зашифрованы, я не знаю, как лучше всего запросить его. Например.
SELECT PlainTextA, PlainTextB, PlainTextC
WHERE CONVERT(varchar, DECRYPTBYKEY(EncyptedColumn)) = @SearchTerm
наверняка приведет к полному сканированию таблицы?
Другой вариант, который, как я думал, может работать, - сначала шифрование критериев поиска, например.
SELECT PlainTextA, PlainTextB, PlainTextC
WHERE EncyptedColumn = ENCRYPTBYKEY(KEY_GUID('KeyName'), @SearchTerm)
но это не работает, поскольку зашифрованное генерируемое значение всегда отличается.
Приветствуются любые предложения.