首页 > 解决方案 > 如果用户相关数据被加密,您如何对这些列执行搜索?

问题描述

如果我有一个包含 100 万用户的 users 表,并且出于安全合规性原因,我必须加密用户的名字、姓氏和电子邮件地址,我该如何提供搜索功能?

当数据被加密并存储在varbinary列类型中时,如何允许我的应用程序的用户根据名字、姓氏和电子邮件地址的部分匹配来搜索用户?

如果我必须解密整个数据库来执行查询,那么当我们的数据库中有 100 万用户时,这将是不切实际的。

标签: sql-serverencryption

解决方案


以今天的标准衡量,100 万用户的数据非常小——远低于演出。您可以在应用程序启动时将整个数据库加载到内存中,并对所有名称使用反向索引,可能在有序映射下也允许前缀搜索,或者使用内存中的 NoSQL(例如 Lucene)来完成繁重的工作.

尽管加载数据需要几秒钟的时间,但查找速度会很快——速度快到可以放置一个“随你输入”的输入框。


推荐阅读