FirebirdSQL logo

Cryptage des bases de données

L’instruction ALTER DATABASE avec la phrase ENCRYPT WITH crypte la base de données avec le plugin de cryptage spécifié.Le chiffrement commence immédiatement après cette déclaration et s’exécute en arrière-plan.Le fonctionnement normal de la base de données n’est pas perturbé pendant le cryptage.

Note

Le processus de cryptage peut être surveillé en utilisant le champ MON$CRYPT_PAGE dans la pseudo-table MON$DATABASE ou visualisé sur la page d’en-tête de la base de données en utilisant gstat -e.

gstat -h fournira également des informations limitées sur l’état du cryptage.

Par exemple, la requête suivante

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

affichera le pourcentage d’achèvement du processus de cryptage.

La clause optionnelle KEY permet de passer un nom de clé au plugin de cryptage.Le plugin décide de ce qu’il faut faire avec ce nom de clé.

L’instruction ALTER DATABASE avec la clause DECRYPT décrypte la base de données.

Example 1. Cryptage des bases de données
ALTER DATABASE ENCRYPT WITH DbCrypt;
Example 2. Décryptage de la base de données
ALTER DATABASE DECRYPT;

Gestion de la réplication

L’instruction ALTER DATABASE avec la phrase ENABLE PUBLICATION active la réplication de la base de données.

ALTER DATABASE ENABLE PUBLICATION

Pour désactiver la réplication de la base de données, exécutez l’opérateur

ALTER DATABASE DISABLE PUBLICATION

Les modifications seront appliquées dès que la transaction sera confirmée.

Un ensemble de réplication (ou publication) doit être défini lorsque la réplication est activée. Il comprend les tables à répliquer.Cela se fait également à l’aide de la commande DDL :

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

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

Si le mot-clé ALL est utilisé, le jeu de réplication inclura toutes les tables, y compris celles qui seront créées ultérieurement.La commande se présentera comme suit :

ALTER DATABASE INCLUDE ALL TO PUBLICATION

Vous pouvez spécifier un ensemble spécifique de tables pour la réplication.Pour ce faire, spécifiez une liste de tables séparées par des virgules après le mot-clé TABLE.Dans l’exemple suivant, nous autorisons la réplication pour les tables t1 et t2 :

ALTER DATABASE INCLUDE TABLE t1, t2 TO PUBLICATION

L’opérateur suivant est utilisé pour exclure des tables d’un ensemble de réplication (publication) :

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

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

L’utilisation du mot-clé ALL exclura toutes les tables du jeu de réplication.Si toutes les tables ont été précédemment ajoutées à la publication à l’aide du mot-clé ALL, cet opérateur désactivera la publication automatique pour les tables nouvellement créées.La commande se présentera comme suit :

ALTER DATABASE EXCLUDE ALL FROM PUBLICATION

Vous pouvez spécifier un ensemble spécifique de tables à exclure de la réplication.Pour ce faire, spécifiez une liste de tables séparées par des virgules après le mot-clé TABLE.Dans l’exemple suivant, nous excluons les tables t1 et t2 du jeu de réplication :

ALTER DATABASE EXCLUDE TABLE t1, t2 FROM PUBLICATION

Les tables activées pour la réplication peuvent être davantage filtrées en utilisant deux paramètres dans le fichier de configuration replication.conf : include_filter et exclude_filter.Il s’agit d’expressions régulières qui sont appliquées aux noms de tables et définissent des règles pour inclure des tables dans le jeu de réplication ou les exclure du jeu de réplication.