我在一个MySQL数据库中有80个表,我想对这些表的数据进行加密,以便没有人可以直接访问数据。
1)否。项目中的查询数量太高,因此我无法使用AES_ENCRYPT(列名,密钥)进行加密,而不能使用AES_DECRYPT(列名,密钥)对每个查询中的数据进行解密。
2)我可以使用静态数据加密,但是它仅加密db文件(* .ibd)。但是,数据仍然是正常格式,任何用户都可以从任何工作台(MySQL Workbench,Sqlyog或命令行)查看真实数据。
还有其他方法可以加密和解密MySQL数据吗?还是任何其他提供以加密形式存储数据的功能的数据库?
我正在使用MySQL版本5.7.23
答案 0 :(得分:1)
1)如果在查询级别使用db进行加密/解密的成本很高,那么除了不使用加密之外,您无法采取其他措施来降低成本。
2)我不明白。如果您担心用户访问他们不应该访问的数据,那么如何在每个表级别限制用户对数据的访问[1]?如果某些用户需要访问数据的某些部分,则可以使用视图,仅公开那些部分。
[1] https://dev.mysql.com/doc/refman/8.0/en/privilege-system.html