Spec-Zone.ru › MariaDB

Активация шифрования Aria

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

Шифрование таблиц, созданных пользователем

Для таблиц, созданных пользователем, можно активировать шифрование, установив системную переменную aria_encrypt_tables в значение ON, а затем перезапустить сервер. После этого Aria автоматически активирует шифрование для всех таблиц, созданных после этого, с опцией таблицы ROW_FORMAT установленной в значение PAGE.

В настоящее время Aria не поддерживает шифрование таблиц, где опция таблицы ROW_FORMAT установлена в значения FIXED или DYNAMIC.

В отличие от InnoDB, Aria не поддерживает опцию таблицы ENCRYPTED (см. MDEV-18049). Шифрование для Aria может быть активировано только глобально с помощью системной переменной aria_encrypt_tables.

Шифрование существующих таблиц

В случаях, когда у вас есть существующие таблицы Aria, которые вы хотите зашифровать, процесс немного сложнее. В отличие от InnoDB, Aria не использует фоновые потоки шифрования для автоматического выполнения изменений шифрования (см. MDEV-18971). Поэтому, для шифрования существующих таблиц, необходимо определить каждую таблицу, которую необходимо зашифровать, и затем вручную перестроить каждую таблицу.

Сначала установите системную переменную aria_encrypt_tables для шифрования новых таблиц.

SET GLOBAL aria_encrypt_tables=ON;

Определите таблицы Aria, у которых опция таблицы ROW_FORMAT установлена в значение PAGE.

SELECT TABLE_SCHEMA, TABLE_NAME 
FROM information_schema.TABLES 
WHERE ENGINE='Aria' 
  AND ROW_FORMAT='PAGE'
  AND TABLE_SCHEMA != 'information_schema';

Для каждой таблицы в наборе результатов выполните оператор ALTER TABLE для перестроения таблицы.

ALTER TABLE test.aria_table ENGINE=Aria ROW_FORMAT=PAGE;

Этот оператор заставляет Aria перестроить таблицу с использованием опции таблицы ROW_FORMAT. В процессе, с новым значением по умолчанию, он шифрует таблицу при записи на диск.

Шифрование временных таблиц на диске

Во время выполнения запросов MariaDB регулярно создаёт внутренние временные таблицы. Эти внутренние временные таблицы изначально используют движок хранения MEMORY, который полностью хранится в памяти. Когда размер таблицы превышает выделение, определённое системной переменной max_heap_table_size, MariaDB записывает данные на диск, используя другой движок хранения. Если у вас установлено aria_used_for_temp_tables в значение ON, MariaDB использует Aria для записи внутренних временных таблиц на диск.

Шифрование внутренних временных таблиц обрабатывается отдельно от шифрования таблиц, созданных пользователем. Для активации шифрования для этих таблиц установите системную переменную encrypt_tmp_disk_tables в значение ON. После установки все внутренние временные таблицы, которые записываются на диск с помощью Aria, автоматически шифруются.

Вручную шифрование таблиц

В настоящее время Aria не поддерживает ручное шифрование таблиц через опции таблиц ENCRYPTED и ENCRYPTION_KEY_ID. Дополнительную информацию можно найти в MDEV-18049.

В случаях, когда вы хотите вручную зашифровать таблицы или установить конкретный ключ шифрования, используйте InnoDB.

Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительную проверку со стороны MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/aria-enabling-encryption/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API