我有一个 MySQL 数据库表,其中包含大量需要可搜索的加密数据(使用不同密钥加密的不同子集)。如果用户经过身份验证并且有权访问某个子集(因此拥有加密数据的密钥),他们如何搜索表的子集?即不仅 WHERE EncryptedKey =
,而且还有EncryptedData LIKE
其他条件?
数据以以下格式存储:
+--------+----------+--------------+---------------+---------------+
| DataID | SubsetID | EncryptedKey | EncryptedData | EncryptedAttr |
+--------+----------+--------------+---------------+---------------+
| 1 | 1 | xxxxxxxxxxxx | xxxxxxxxxxxxx | xxxxxxxxxxxxx |
+--------+----------+--------------+---------------+---------------+
| 2 | 1 | xxxxxxxxxxxx | xxxxxxxxxxxxx | xxxxxxxxxxxxx |
+--------+----------+--------------+---------------+---------------+
| 3 | 1 | xxxxxxxxxxxx | xxxxxxxxxxxxx | xxxxxxxxxxxxx |
+--------+----------+--------------+---------------+---------------+
| 4 | 2 | xxxxxxxxxxxx | xxxxxxxxxxxxx | xxxxxxxxxxxxx |
+--------+----------+--------------+---------------+---------------+
我还没有决定加密套件,我正在考虑数据库服务器的本机套件。