FirebirdSQL logo
 Language de définition des données (DDL)SHADOW 

Modifier le jeu de caractères par défaut

La phrase SET DEFAULT CHARACTER SET modifie le jeu de caractères par défaut de la base de données.Ce changement n’affecte pas les données existantes.Le nouveau jeu de caractères par défaut ne sera utilisé que dans les commandes DDL suivantes, qui utiliseront en outre le tri par défaut pour le nouveau jeu de caractères.

Example 1. Modification du jeu de caractères par défaut de la base de données
ALTER DATABASE SET DEFAULT CHARACTER SET WIN1251;

Modification des privilèges d’exécution par défaut

Depuis Firebird 4.0, il est maintenant possible de spécifier les objets de métadonnées avec quels privilèges ils seront exécutés : appelant ou utilisateur définissant.Ceci est fait en utilisant l’option SQL SECURITY, qui peut être spécifiée pour une table, un trigger, une procédure, une fonction ou un package.Si l’option INVOKER est sélectionnée, l’objet de métadonnées sera exécuté avec les privilèges de l’utilisateur appelant.Si l’option DEFINER est sélectionnée, l’objet de métadonnées sera exécuté avec les privilèges de l’utilisateur qui le définit (propriétaire). Si la clause SQL SECURITY n’est pas spécifiée lors de la création d’un module ou d’une table PSQL, l’option INVOKER est utilisée par défaut.

La clause SET DEFAULT SQL SECURITY modifie les privilèges d’exécution avec lesquels les modules PSQL (procédures stockées, fonctions et packages) sont exécutés par défaut.

Example 1. Modification des privilèges d’exécution par défaut

Après avoir exécuté cette déclaration, les modules PSQL seront exécutés par défaut avec l’option `SQL SECURITY DEFINER'.

ALTER DATABASE SET DEFAULT SQL SECURITY DEFINER;

LINGER

La proposition SET LINGER vous permet de définir un délai de fermeture de la base de données.Ce mécanisme permet à Firebird, en mode SuperServer, de garder la base de données ouverte pendant un certain temps après la fermeture de la dernière connexion.disposent d’un mécanisme de fermeture différée de la base de données.Cela peut contribuer à améliorer les performances et à réduire les coûts dans les cas où la base de données est fréquemment ouverte et fermée, tout en gardant les ressources "réchauffées" jusqu’à la prochaine ouverture.

Tip

Ce mode peut être utile pour les applications Web où la connexion à la base de données ne dure généralement que très peu de temps.

La phrase DROP LINGER supprime le délai et ramène la base de données à son état normal (sans délai). Cette commande équivaut à mettre le délai à 0.

Tip

La suppression de "LINGER" n’est pas la meilleure solution pour répondre au besoin temporaire de le désactiver pour une action ponctuelle qui nécessite de forcer un arrêt du serveur.L’utilitaire gfix'' dispose maintenant d’un commutateur [option]NoLinger'' qui fermera immédiatement la base de données spécifiée après la disparition de la dernière connexion, indépendamment des paramètres LINGER de la base de données.Le réglage "LINGER" sera sauvegardé et fonctionnera normalement la prochaine fois.

En outre, le remplacement ponctuel est également disponible via les services API, en utilisant le tag isc_spb_prp_nolinger, par exemple (dans une ligne comme celle-ci) :

fbsvcmgr host:service_mgr user sysdba password xxx
action_properties dbname employee prp_nolinger
Example 1. Réglage d’un délai de 30 secondes
ALTER DATABASE SET LINGER 30;
Example 2. Suppression du délai
ALTER DATABASE DROP LINGER;

ou

ALTER DATABASE SET LINGER 0;

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;