Как выполнить «Упорядочить по» в зашифрованном столбце (детерминированное шифрование — SQL Server 2016)?
Я получаю сообщение об ошибке при выполнении в SSMS 2017 (с необходимыми настройками для AE)
SELECT *
FROM [dbo].[X]
ORDER BY lastName
Столбец lastName
определяется следующим образом:
[lastName] [varchar](60) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [X]
Я получаю сообщение об ошибке:
Сообщение 33299, уровень 16, состояние 2, строка 9
Несоответствие схемы шифрования для столбцов/переменных 'lastName'. Схема шифрования для столбцов/переменных (encryption_type = 'DETERMINISTIC', шифрование_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'X', column_encryption_key_database_name = 'X'), и выражение рядом со строкой '3' ожидает, что это будет (encryption_type = ' PLAINTEXT') (или слабее).
A
зашифровано как23
,B
зашифровано как17
, аC
зашифровано как49
, вы действительно хотите, чтобы сервер выполнял эту сортировку (чтобы значения, которые вы в конечном итоге читаете, выходили в порядкеB
,A
,C
)? - person Damien_The_Unbeliever   schedule 18.08.2017ORDER BY
, может быть обходной путь, наиболее очевидным из которых является выполнение сортировки на стороне клиента после расшифровки. (SSMS не имеет собственной логики обработки, поэтому она не может делать такие приятные вещи.) - person Jeroen Mostert   schedule 18.08.2017