Как зашифровать данные перед вставкой / обновлением и расшифровать перед выбором из таблицы MySQL? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть 80 таблиц в БД MySQL, и я хочу зашифровать данные этой таблицы, чтобы никто не мог получить доступ к данным напрямую.

1) Нет.запросов в моем проекте слишком много, поэтому я не могу использовать AES_ENCRYPT (имя-столбца, ключ) для шифрования и AES_DECRYPT (имя-столбца, ключ) для расшифровки данных в каждом запросе.

2) Я могу использовать шифрование данныхВ состоянии покоя, но он только шифрует файлы БД (* .ibd).Однако данные все еще находятся в нормальной форме, и любой пользователь может видеть реальные данные из любого рабочего места (MySQL Workbench, Sqlyog или командной строки).

Есть ли другой способ, с помощью которого я могу зашифровать и расшифровать данные MySQL?Или любой другой БД, который обеспечивает функциональность для хранения данных в зашифрованном виде?

Я использую MySQL версии 5.7.23

1 Ответ

0 голосов
/ 24 октября 2018

1) Если стоимость шифрования / дешифрования с использованием БД слишком высока на уровне запросов, то вы ничего не можете сделать, чтобы сократить расходы, кроме того, что не используете шифрование.

2) Я нене понимаю это.Если вы обеспокоены тем, что пользователи получают доступ к данным, к которым у них нет доступа, как насчет ограничения доступа пользователей к данным на уровне таблицы [1]?Если некоторым пользователям требуется доступ к некоторым частям данных, вы можете использовать представления, отображая только эти части.

[1] https://dev.mysql.com/doc/refman/8.0/en/privilege-system.html

...