如何在插入/更新之前加密数据,在从mysql表中选择之前解密数据?

e0uiprwp  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(287)

我在mysql数据库中有80个表,我想加密这些表的数据,这样就没有人可以直接访问数据了。
1) 我的项目中的查询数太高,因此我不能使用aes\u encrypt(column\u name,key)对每个查询中的数据进行加密,而使用aes\u decrypt(column\u name,key)对每个查询中的数据进行解密。
2) 我可以在静止时使用数据加密,但它只加密db文件(*.ibd)。但是,数据仍然是正常的,任何用户都可以从任何工作台(mysql工作台、sqlyog或命令行)看到真实的数据。
有没有其他方法可以对mysql数据进行加密和解密?或者提供以加密形式存储数据的功能的任何其他数据库?
我使用的是MySQL5.7.23版本

slmsl1lt

slmsl1lt1#

1) 如果在查询级别上使用db进行加密/解密的成本太高,那么除了不使用加密之外,您没有什么可以做的来降低成本。
2) 我不明白。如果您担心用户访问他们不应该访问的数据,那么如何限制用户访问每个表级别[1]上的数据呢?如果某些用户需要访问数据的某些部分,则可以使用视图,只公开这些部分。
[1] https://dev.mysql.com/doc/refman/8.0/en/privilege-system.html

相关问题