【发布时间】:2011-02-19 05:29:34
【问题描述】:
我有一个 ASP.NET MVC 应用程序,我使用 Linq-to-SQL 查询从 我的 SQL Server 数据库。现在出于安全目的,我需要加密我的数据库。 Linq-to-SQL 如何处理加密数据库?
【问题讨论】:
标签: sql-server sql-server-2005 linq-to-sql encryption
我有一个 ASP.NET MVC 应用程序,我使用 Linq-to-SQL 查询从 我的 SQL Server 数据库。现在出于安全目的,我需要加密我的数据库。 Linq-to-SQL 如何处理加密数据库?
【问题讨论】:
标签: sql-server sql-server-2005 linq-to-sql encryption
使用Transparent Database Encryption。顾名思义,是透明的,LINQsSQL 工作得很好。
如果您使用的是非企业 SKU,则必须使用 SQL 加密函数来加密/解密数据:ENCRYPTBYKEY 和 DECRYPTBYKEY。客户端工具(SqlClient、ODBC、OleDB)和任何 ORM 框架(包括 LINQ)都不支持它们。加密和解密过程必须在服务器上进行,并且由 T-SQL 结构驱动,这几乎意味着您必须通过存储过程执行所有 DML 操作。数据检索操作可以通过使用投影解密数据的视图以某种方式自动化,并且这些视图可以由 LINQ 提升。
简而言之,如果没有 TDE,您将能够对解密数据的视图和过程返回的数据使用 IQueryable,但您将无法将 LINQ 用作 ORM(例如,没有数据上下文 InsertOnSubmit )。
【讨论】: