#mysql #encryption
#mysql #шифрование
Вопрос:
Для включения шифрования MySQL выполняются следующие шаги.
-
Mysql версии 5.7 установлен на сервере apache. Поэтому по умолчанию
keyring_file.so
доступно по следующему пути:/usr/lib64/mysql/plugin/keyring_file
. -
В /etc/my.cnf добавляется код ниже 2, и MySQL перезапускается.
early-plugin-load=keyring_file.so keyring_file_data=/var/lib/mysql-keyring/keyring
- Когда выполняется запрос ниже, чтобы проверить, активен ли плагин keyring. Он выводится как активный
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'keyring%';
-------------- --------------- | PLUGIN_NAME | PLUGIN_STATUS | -------------- --------------- | keyring_file | ACTIVE | -------------- ---------------
- Шифрование включено на уровне таблицы (в table author из DB testDB), его можно проверить с помощью приведенного ниже запроса
SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%'; -------------- ------------ ---------------- | TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS | -------------- ------------ ---------------- | testDB | author | ENCRYPTION="Y" | -------------- ------------ ----------------
- Данные вставляются в таблицу автора как «обычный текст». Однако, хотя таблица зашифрована.
select * from author; ------ ---------- ------------- | id | name | email | ------ ---------- ------------- | 1 | PQR | xuz@abc.com | | 1 | XYZ | abc@abc.com | | 1 | SSSS | xyz@abc.com | | 1 | dfdfdf | prq@abc.com | ------ ---------- -------------
Что нужно сделать, чтобы включить шифрование в таблице MySQL?
Комментарии:
1. «Mysql версии 5.7 установлен на сервере apache» — это опечатка?
2. это прозрачное шифрование базы данных — оно шифрует данные в файле данных «на лету» и расшифровывает их при извлечении аутентифицированным пользователем
Ответ №1:
Вы включили шифрование данных innodb в состоянии покоя, которое представляет собой прозрачный метод шифрования, означающий, что аутентифицированные и авторизованные пользователи даже не заметят этого. Как говорится в часто задаваемых вопросах mysql о расшифровке:
InnoDB data-at-rest encryption предназначен для прозрачного применения шифрования в базе данных, не затрагивая существующие приложения. Возврат данных в зашифрованном формате приведет к сбою большинства существующих приложений. Шифрование данных в состоянии покоя InnoDB обеспечивает преимущество шифрования без накладных расходов, связанных с традиционными решениями для шифрования баз данных, которые обычно требуют дорогостоящих и существенных изменений в приложениях, триггерах базы данных и представлениях.