Как зашифровать существующие таблицы mariadb в CentOS? - PullRequest
0 голосов
/ 26 июня 2019

Я настраиваю шифрование данных в покое для моего экземпляра 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 для всех существующих таблиц.

1 Ответ

0 голосов
/ 26 июня 2019

innodb_encrypted_tables=FORCE означает, что вы не можете создавать новые незашифрованные таблицы, поэтому CREATE TABLE ... ENCRYPTED=NO завершится ошибкой. Это не значит, что все таблицы будут автоматически преобразованы в зашифрованные таблицы (и это может занять много времени).

Так что, если вы хотите преобразовать все ваши таблицы, вы должны сделать это вручную (или написав небольшой скрипт).

...