Вот мое требование:
- База данных, в которой хотя бы 1 столбец хотя бы на 1 таблице является чувствительной, и должна быть зашифрована
- Администраторы баз данных и люди, обращающиеся к базе данных с помощью SSMS, должны не сможет просматривать значения открытого текста столбцов
- . Будет клиентское приложение asp. net, которое сможет извлекать и расшифровывать данные, а также вставлять и обновлять таблицы (и). )
Итак, если я включу всегда зашифрованные на необходимые столбцы, любой нормальный запрос будет получать зашифрованный текст для этих столбцов. Хорошо.
Клиентское приложение будет иметь Column Encryption Setting=Enabled
в строке подключения, поэтому будет иметь возможность шифровать и дешифровать данные.
Но что мешает кому-то подключиться к SSMS и включить такое же шифрование столбцов установка? Затем они могут выбрать из таблицы и увидеть открытый текст.
Короче говоря, как применить разрешения, чтобы только люди в указанной группе AD c, за исключением администраторов баз данных, имели разрешения на доступ к ключам шифрования расшифровать данные?
Это так же просто, как убедиться, что IIS, в котором работает приложение. net, не на том же сервере, и создать сертификат главного ключа столбца только на этом компьютере IIS?