Как работает шифрование в MySQL версии MySQL 5.7?

#mysql #encryption

#mysql #шифрование

Вопрос:

Для включения шифрования MySQL выполняются следующие шаги.

  1. Mysql версии 5.7 установлен на сервере apache. Поэтому по умолчанию keyring_file.so доступно по следующему пути: /usr/lib64/mysql/plugin/keyring_file .

  2. В /etc/my.cnf добавляется код ниже 2, и MySQL перезапускается.

 early-plugin-load=keyring_file.so

keyring_file_data=/var/lib/mysql-keyring/keyring
  
  1. Когда выполняется запрос ниже, чтобы проверить, активен ли плагин keyring. Он выводится как активный

SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'keyring%';

  -------------- --------------- 
| PLUGIN_NAME  | PLUGIN_STATUS |
 -------------- --------------- 
| keyring_file | ACTIVE        |
 -------------- --------------- 
  
  1. Шифрование включено на уровне таблицы (в 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" |
 -------------- ------------ ---------------- 
  
  1. Данные вставляются в таблицу автора как «обычный текст». Однако, хотя таблица зашифрована.
 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 обеспечивает преимущество шифрования без накладных расходов, связанных с традиционными решениями для шифрования баз данных, которые обычно требуют дорогостоящих и существенных изменений в приложениях, триггерах базы данных и представлениях.