Как может работать функция SQL Server Always Encrypted, когда программное обеспечение SQL Server и клиентское ПО находятся на одном компьютере? - PullRequest
1 голос
/ 04 июня 2019

Я работаю над приложением .NET Winforms (VB.NET, .NET Framework 4.5), которое хранит данные в базе данных SQL Server Express 2016; ОБА части работают на той же машине.

Некоторые столбцы в базе данных содержат данные, которые являются конфиденциальными и не должны быть доступны в незашифрованном виде для пользователя. Итак, я начал искать эффективный способ сделать это. После некоторого прочтения я увидел, что «новая» функция Always Encrypted на SQL Server - это достаточно эффективный «готовый» способ реализации этого, но с одним уловом ... SQL-сервер и клиентское приложение НЕ ДОЛЖНЫ быть на том же компьютере, так как сертификат хранится в локальном хранилище сертификатов Windows.

Мой вопрос: есть ли способ сделать это, не переходя на решение Azure? Приложение должно работать, даже если компьютер не подключен к сети.

Любые предложения приветствуются. Однако очень важно, чтобы шифрование было как можно более «легким», с точки зрения ресурсов. Спасибо всем заранее. Извините, если мой английский не так хорош.

P.S. Я протестировал эту настройку просто для уверенности и да, вы можете расшифровать данные через SSMS, когда и SQL Server, и клиентское приложение (с сертификатом) находятся на одном компьютере.

Обновление: проверьте ответ Андрея. Большое спасибо всем за помощь.

1 Ответ

0 голосов
/ 17 июня 2019

Это было решено путем реализации пользовательского AES-шифрования данных из приложения (и на самом деле довольно эффективно).

Пользователь теперь может видеть расшифрованные данные в приложении, но не через SSMS.

...