Я настраиваю шифрование данных в покое для моего экземпляра MariaDB. Я хочу зашифровать все табличные пространства автоматически. Я настроил параметры шифрования MariaDB в моем файле параметров, и все новые таблицы зашифрованы. Однако существующие таблицы не зашифрованы. Я могу зашифровать их вручную с помощью этой команды:
ALTER TABLE users ENCRYPTED=YES;
Вот что я добавил в файл опций:
plugin_load_add=file_key_management
file_key_management_filename=/mnt/mariadb_databases/mysql/encryption/keyfile.enc
file_key_management_filekey=FILE:/mnt/mariadb_databases/mysql/encryption/.keyfile.key
file_key_management_encryption_algorithm=aes_ctr
innodb_default_encryption_key_id=3
innodb_encrypt_tables=FORCE
innodb_encrypt_log=ON
innodb_encryption_threads=1
encrypt_tmp_files=ON
innodb_encryption_rotate_key_age=1
Я использовал эту команду, чтобы проверить, какие таблицы зашифрованы:
SELECT * FROM information_schema.INNODB_TABLESPACES_ENCRYPTION;
ОС: CentOS 7
Версия MariaDB: 10.4.6 (изначально обновлялась с 5.5 через каждую последующую версию)
Файл опций: /etc/my.cnf
Как сделать так, чтобы все существующие таблицы автоматически шифровались? Я думал, что опция innodb_encrypt_tables = FORCE сделает это, но она не работает должным образом, и я не хочу запускать инструкцию ALTER TABLE для всех существующих таблиц.