Шифрование данных SQL Server 2005 и LINQ TO SQL - PullRequest
3 голосов
/ 13 мая 2010

У меня есть приложение ASP.NET MVC, и я использовал запросы Linq-to-SQL для получения данных из моя база данных SQL Server. Теперь в целях безопасности мне нужно зашифровать мою базу данных. Как Linq-to-SQL работает с зашифрованными базами данных?

1 Ответ

4 голосов
/ 13 мая 2010

Использование Прозрачное шифрование базы данных . Как следует из названия, это прозрачный и LINQsSQL работает просто отлично.

Если вы используете SKU не для Enterprise, то вам придется использовать криптографические функции SQL для шифрования / дешифрования данных: ENCRYPTBYKEY и DECRYPTBYKEY . Для них нет никакой поддержки ни в клиентских инструментах (SqlClient, ODBC, OleDB), ни в ORM-инфраструктуре, включая LINQ. Процесс шифрования и дешифрования должен происходить на сервере и управляться конструкциями T-SQL, что в значительной степени подразумевает, что все операции DML должны выполняться с помощью хранимых процедур. Операции извлечения данных могут быть как-то автоматизированы с помощью представлений, которые проецируют дешифрованные данные, и эти представления могут быть увеличены с помощью LINQ.

Короче говоря, без TDE вы сможете использовать IQueryable над данными, возвращаемыми представлениями и процедурами, которые расшифровывают данные, но вы не сможете использовать LINQ в качестве ORM (например, без контекста данных InsertOnSubmit ).

...