【问题标题】:SQL Server TDE and LINQSQL Server TDE 和 LINQ
【发布时间】:2014-04-02 21:41:38
【问题描述】:

我需要使用 TDE 来保护数据并防止 DBA 看到数据。我们当前的数据访问层使用 LINQ 在没有 TDE 的情况下访问 SQL。如果数据库转换为带有加密列的 TDE,我们必须让 LINQ 产生如下查询:

OPEN SYMMETRIC KEY MyKey
DECRYPTION BY PASSWORD = 'mypassword';

SELECT CONVERT(VARCHAR(MAX), DECRYPTBYKEY(MyEncryptedCol))
FROM dbo.MyEncryptedTable;

CLOSE SYMMETRIC KEY MyKey;

以最少的工作量转换现有数据层的最佳方法是什么?我更喜欢继续使用 LINQ。

目前使用 SQL Server 2012、.Net 4.5、C#

【问题讨论】:

    标签: c# sql-server linq tde


    【解决方案1】:

    什么都没有。你基本上确保你不能使用简单的 LINQ,并且任何想出这个的人都应该为此被解雇。

    您能做什么 - 最好 - 取决于数据层。是的,LINQ不是数据访问技术,是C#集成查询,具体取决于提供者(Linq2Sql,实体框架,NHibernate),你确保不提供任何信息。

    无论如何,您的问题是您需要添加开始和结束 sql 命令 - 一些提供程序可以这样做 - 以及基本上特殊的 SQL,这将无法正常工作。

    最好的机会是采用开源数据访问提供程序(NHibernate、实体框架)并将其扩展以允许此功能。

    否则会站在建筑师面前告诉他“嘿,你写了规范——你有没有想过你必须确保它们是可行的?”是替代方案。这确实是您需要的非标准 SQL,如果不进行修改,运行的磨房 ORM 将不支持它。

    【讨论】:

      猜你喜欢
      • 2022-07-29
      • 1970-01-01
      • 2018-12-11
      • 2014-01-23
      • 1970-01-01
      • 2012-12-04
      • 2015-04-18
      • 2011-07-01
      • 2020-08-21
      相关资源
      最近更新 更多