FirebirdSQL logo

Шифрование базы данных

Оператор ALTER DATABASE с предложением ENCRYPT WITH шифрует базу данных с помощью указанного плагина шифрования.Шифрование начинается сразу после этого оператора и будет выполняться в фоновом режиме.Нормальная работа с базами данных не нарушается во время шифрования.

Note

Процесс шифрования может быть проконтролирован с помощью поля MON$CRYPT_PAGE в псевдо-таблице MON$DATABASE или просмотрен на странице заголовка базы данных с помощью gstat -e.

gstat –h также будет предоставлять ограниченную информацию о состоянии шифрования.

Например, следующий запрос

select MON$CRYPT_PAGE * 100 / MON$PAGES from MON$DATABASE

будет отображать процент завершения процесса шифрования.

Необязательное предложение KEY позволяет передать имя ключа для плагина шифрования.Что делать с этим именем ключа решает плагин.

Оператор ALTER DATABASE с предложением DECRYPT дешифрует базу данных.

Example 1. Шифрование базы данных
ALTER DATABASE ENCRYPT WITH DbCrypt;
Example 2. Дешифрование базы данных
ALTER DATABASE DECRYPT;

Управление репликацией

Оператор ALTER DATABASE с предложением ENABLE PUBLICATION включает репликацию базы данных.

ALTER DATABASE ENABLE PUBLICATION

Для отключения репликации базы данных выполните оператор

ALTER DATABASE DISABLE PUBLICATION

Изменения будут применены сразу после подтверждения транзакции.

При настойке репликации должен быть определен набор репликации (он же публикация). Он включает в себя таблицы, которые должны быть реплицированы.Это также делается с помощью команды DDL:

ALTER DATABASE INCLUDE {TABLE <table_list> | ALL} TO PUBLICATION

<table_list> ::= tablename [, tablename ...]

При использовании ключевого слова ALL в набор репликации будут включены все таблицы, включая те что будут созданы позднее.Команда будет выглядеть следующим образом:

ALTER DATABASE INCLUDE ALL TO PUBLICATION

Вы можете задать конкретный набор таблиц для репликации.Для этого после ключевого слова TABLE необходимо указать список таблиц через запятую.В следующем примере мы разрешаем репликацию для таблиц t1 и t2:

ALTER DATABASE INCLUDE TABLE t1, t2 TO PUBLICATION

Для исключения таблиц из набора репликации (публикации) используется следующий оператор:

ALTER DATABASE EXCLUDE {TABLE <table_list> | ALL} FROM PUBLICATION

<table_list> ::= tablename [, tablename ...]

При использовании ключевого слова ALL из набора репликации будут исключены все таблицы.Если ранее в публикацию были добавлены все таблицы с использованием ключевого слова ALL, то данный оператор отключит автоматическую публикацию для вновь создаваемых таблиц.Команда будет выглядеть следующим образом:

ALTER DATABASE EXCLUDE ALL FROM PUBLICATION

Вы можете задать конкретный набор таблиц для исключения из репликации.Для этого после ключевого слова TABLE необходимо указать список таблиц через запятую.В следующем примере мы исключаем таблицы t1 и t2 из набора репликации:

ALTER DATABASE EXCLUDE TABLE t1, t2 FROM PUBLICATION

Таблицы, включенные для репликации, могут быть дополнительно отфильтрованы с использованием двух параметров в файле конфигурации replication.conf: include_filter и exclude_filter.Это регулярные выражения, которые применяются к именам таблиц и определяют правила для включения таблиц в набор репликации или исключения их из набора репликации.