Как зашифровать и расшифровать nvarchar (max) на SQL сервере - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно зашифровать столбец nvarchar(max), и когда я пишу запрос выбора, автоматически расшифровывает значение столбца, что-то вроде всегда зашифрованного в SQL Server 2016.

SQL Сервер всегда зашифрован, не поддерживает nvarchar(max).

1 Ответ

0 голосов
/ 26 мая 2020

NVARCHAR (MAX) поддерживается для Всегда зашифровано . Указанные ниже типы данных не поддерживаются.

Всегда зашифрованный MSDN

Столбцы, использующие один из следующих типов данных: xml, timestamp / rowversion, image, ntext , текст, sql_variant, hierarchyid, geography, geometry, alias, user defined-types.

Для шифрования данных у вас есть несколько вариантов:

select empid , SSN , SSNEncrypted , 
convert(varchar,DECRYPTBYKEY(SSNEncrypted) ) 
[Decrypted SSN] from employees  WHERE EMPID = 1
select empid , SSN from employees  WHERE EMPID = 1 -- Here, SSN is decrypted on the fly. transparent to user
  • Always Encrypted - за шифрованием отвечает драйвер приложения
using (SqlCommand cmd = connection.CreateCommand())
{
   cmd.CommandText = @"SELECT empid , SSN from employees WHERE EMPID = 1";
cmd.ExecuteNonQuery();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...