【发布时间】:2012-08-04 13:20:44
【问题描述】:
我有几个要求不能很好地相互配合:
- 加密名字、姓氏、出生日期以及表中的一些其他列(数据库是 Sql Server)。
- 对其中一些加密列执行范围/通配符搜索。即从表中选择 *,其中 first_name 像 '%jo%' 和 last_name 像 '%exceptional%'。
我知道我需要解密整个表然后执行非常缓慢的搜索。但不知何故,我需要优化搜索。
现在我可以考虑使用 dataset/Linq 等在数据库或应用程序内部进行搜索。
那么,哪种方法会相对更快?还有其他优化方法吗?
【问题讨论】:
-
您使用的是 SQL Server 2008 吗?可以使用 TDE 吗?
-
我们使用的是 Sql Server 网页版。我试图让管理层相信 TDE。但这对我们来说非常昂贵,几乎 15K GBP/年。
-
您的要求相互矛盾。您可以对数据进行单元格加密,或您可以使用范围搜索。从不两者兼而有之。选择一个意味着牺牲另一个,没有解决方法。使用哈希进行搜索最多只能提供单例查找(探测),但不能提供范围扫描。
标签: sql sql-server optimization encryption