我需要使用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。
当前使用Server 2012,.Net 4.5,C#
发布于 2014-03-01 20:33:04
没什么。你基本上确保了你不能使用简单的LINQ和谁想出来的,应该得到一个解雇。
你能做什么-这取决于数据层。Yee,LINQ不是一种数据访问技术,它是C#集成查询,具体取决于提供者(Linq2Sql、实体框架、NHibernate)和您确保不提供任何信息。
无论如何,您的问题是您需要添加开始和结束sql命令--一些提供程序可以这样做--以及基本特殊的SQL命令,而且这些命令无法工作。
最好的机会是采用开源数据访问提供程序(NHibernate,Entity )并扩展它以允许这种功能。
否则,站在建筑师面前对他说:“嘿,你写了说明书--你有没有想过你必须确保它们是假的?”是另一种选择。THis是真正的非标准SQL,您需要在这里运行ORM,如果没有修改,ORM将不支持它。
https://stackoverflow.com/questions/22119704
复制相似问题