Qui peut créer une base de données ?
L’instruction CREATE DATABASE
peut être exécutée :
-
Utilisateurs avec le privilège
CREATE DATABASE
.
L’instruction CREATE DATABASE
peut être exécutée :
Utilisateurs avec le privilège CREATE DATABASE
.
Création d’une base de données sur un système d’exploitation Windows situé sur le lecteur D avec une taille de page de 8192.Le propriétaire de la base de données sera l’utilisateur assistant.La base de données sera en dialecte 1, et utilisera le jeu de caractères par défaut WIN1251.
SET SQL DIALECT 1;
CREATE DATABASE 'D:\test.fdb'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET WIN1251;
Création d’une base de données sur un système d’exploitation Linux avec une taille de page de 4096.Le propriétaire de la base de données sera l’utilisateur assistant.La base de données sera en dialecte 3, et utilisera le jeu de caractères par défaut UTF8 avec un tri diminué UNICODE_CI_AI
.
CREATE DATABASE '/home/firebird/test.fdb'
USER "wizard" PASSWORD 'player' ROLE 'RDB$ADMIN'
PAGE_SIZE = 4096
DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI_AI;
Important
|
Dans ce cas, la base de données sera sensible à la casse pour le nom d’utilisateur car il est spécifié entre guillemets. |
Création d’une base de données sur le serveur de base distant situé au niveau du chemin référencé par l’alias test décrit dans le fichier databases.conf.Le protocole utilisé est le TCP.Le propriétaire de la base de données sera l’assistant utilisateur.
CREATE DATABASE 'baseserver:test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
Il en va de même pour l’utilisation d’une syntaxe unifiée de type URL pour spécifier un serveur distant.
CREATE DATABASE 'inet://baseserver:3050/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
ou
CREATE DATABASE 'inet://baseserver:gds_db/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
Lorsque vous utilisez des noms de domaine, il peut être utile de préciser quel protocole IP v4 ou IP v6 vous souhaitez utiliser.
CREATE DATABASE 'inet4://baseserver/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
ou
CREATE DATABASE 'inet6://baseserver/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
Création d’une base de données avec une adresse IP (IPv4) au lieu d’un nom de serveur.
CREATE DATABASE '127:0:0:1:test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
Création d’une base de données avec une adresse IP (IPv6) au lieu d’un nom de serveur.
CREATE DATABASE '[::1]:test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
Création d’une base de données en dialecte 3 avec le jeu de caractères par défaut UTF8.Le fichier primaire contiendra 10000 pages avec une taille de page de 8192.Dès que le processus de base de données remplit le fichier primaire, le SGBD place de nouvelles données dans le fichier secondaire test.fdb2.Les mêmes actions se produiront avec le deuxième fichier secondaire.La taille du dernier fichier augmentera tant que le système d’exploitation le permettra ou tant que la mémoire du périphérique de stockage externe ne sera pas épuisée.
SET SQL DIALECT 3;
CREATE DATABASE 'baseserver:D:\test.fdb'
USER wizard PASSWORD 'player' ROLE 'RDB$ADMIN'
PAGE_SIZE = 8192
DEFAULT CHARACTER SET UTF8
FILE 'D:\test.fdb2'
STARTING AT PAGE 10001
FILE 'D:\test.fdb3'
STARTING AT PAGE 20001;
Création d’une base de données en dialecte 3 avec le jeu de caractères par défaut UTF8.Le fichier primaire contiendra 10000 pages avec une taille de page de 8192.Dès que le processus de base de données remplit le fichier primaire, le SGBD place de nouvelles données dans le fichier secondaire test.fdb2.Des actions similaires auront lieu avec le deuxième fichier secondaire.
SET SQL DIALECT 3;
CREATE DATABASE 'baseserver:D:\test.fdb'
USER wizard PASSWORD 'player' ROLE 'RDB$ADMIN'
PAGE_SIZE = 8192
LENGTH 10000 PAGES
DEFAULT CHARACTER SET UTF8
FILE 'D:\test.fdb2'
FILE 'D:\test.fdb3'
STARTING AT PAGE 20001;
[fblangref-ddl-database-alter], [fblangref-ddl-database-drop].
ALTER DATABASE
Pour modifier la structure des fichiers de la base de données, la mettre en "sécurité pour la copie" ou modifier certaines propriétés de la base de données.
DSQL, ESQL
ALTER {DATABASE | SCHEMA} {<add_sec_clause> [<add_sec_clausee> ...]} | {ADD DIFFERENCE FILE 'diff_file' | DROP DIFFERENCE FILE} | {{BEGIN | END} BACKUP} | {SET DEFAULT CHARACTER SET charset} | {SET DEFAULT SQL SECURITY {DEFINER | INVOKER}} | {SET LINGER TO linger_duration | DROP LINGER} | {ENCRYPT WITH plugin_name [KEY key_name] | DECRYPT} | {ENABLE | DISABLE} PUBLICATION | INCLUDE {TABLE <table_list> | ALL} TO PUBLICATION | EXCLUDE {TABLE <table_list> | ALL} FROM PUBLICATION <add_sec_clause> ::= ADD <sec_file> [<sec_file> ...] <sec_file> ::= FILE 'filepath' [STARTING [AT [PAGE]] pagenum] [LENGTH [=] num [PAGE[S]] <table_list> ::= tablename [, tablename ...]
Paramètre | Description |
---|---|
add_sec_clause |
sec_file pour ajouter un fichier de base de données secondaire. |
sec_file |
Spécifier le fichier secondaire. |
filepath |
Chemin et nom du fichier delta ou du fichier de base de données secondaire. |
pagenum |
Le numéro de la page à partir de laquelle le fichier de la base de données secondaire commence. |
num |
num Taille maximale du fichier secondaire en pages. |
diff_file |
diff_file chemin et nom du fichier delta. |
charset |
jeu de caractères par défaut pour la base de données. |
linger_duration |
délai en secondes. |
plugin_name |
nom du plugin de cryptage. |
key_name |
Nom de la clé de cryptage. |
table_list |
Liste des tableaux à activer ou à désactiver pour lespour la réplication. |
tablename |
nom de la base de donnée. |
L’instruction ALTER DATABASE
modifie la structure des fichiers de la base de données ou la fait passer à l’état copy-safe
.
La phrase ADD FILE
ajoute un fichier secondaire à la base de données.Pour le fichier secondaire, le chemin d’accès complet au fichier et le nom du fichier secondaire doivent être spécifiés.La description du fichier secondaire est la même que dans l’instruction CREATE DATABASE.
Dès que le fichier primaire ou secondaire précédent est rempli de 30 000 pages, le SGBD place les données dans le fichier secondaire test4.fdb.
ALTER DATABASE
ADD FILE 'D:\test.fdb4'
STARTING PAGE 30001;
La phrase ADD DIFFERENCE FILE
spécifie le chemin et le nom du fichier delta dans lequel seront écrites les modifications apportées à la base de données après l’avoir mise en mode copy-safe
(“copy-safe”). Cette déclaration n’ajoute pas réellement un fichier.Il remplace simplement le nom et le chemin du fichier delta silencieux.Pour modifier les paramètres existants, vous devez d’abord supprimer la description du fichier delta précédemment spécifiée à l’aide de l’opérateur DROP DIFFERENCE FILE, puis spécifier une nouvelle description du fichier delta.Si vous ne modifiez pas le chemin d’accès et le nom du fichier delta, il aura le même chemin d’accès et le même nom que la base de données, mais avec l’extension .delta.
Note
|
Si un chemin relatif ou un nom de fichier delta seulement est spécifié, il sera créé dans le répertoire actuel du serveur.Pour les systèmes d’exploitation Windows, il s’agit du répertoire système. |
La phrase DROP DIFFERENCE FILE
supprime la description (chemin et nom) du fichier delta donnée précédemment par la commande ADD DIFFERENCE FILE
.Cette déclaration ne supprime pas réellement le fichier.Il supprime le chemin d’accès et le nom du fichier delta et les valeurs par défaut seront utilisées lorsque la base de données sera ensuite configurée en mode safe copy
(i.e.le même chemin et le même nom que le fichier de la base de données, mais avec l’extension .delta).
ALTER DATABASE
ADD DIFFERENCE FILE 'D:\test.diff';
ALTER DATABASE
DROP DIFFERENCE FILE;
L’instruction `BEGIN BACKUP' est destinée à mettre la base de données en mode `copy-safe'. Cette instruction "gèle" le fichier principal de la base de données, ce qui permet d’effectuer une sauvegarde sûre en utilisant le système de fichiers, même si des utilisateurs sont connectés et effectuent des opérations sur les données.Toutes les modifications apportées par les utilisateurs à la base de données seront écrites dans un fichier séparé, appelé fichier delta (delta file).
Note
|
L’instruction `BEGIN BACKUP', malgré sa syntaxe, ne démarre pas une sauvegarde de base de données, mais crée seulement les conditions pour qu’elle ait lieu. |
La proposition FEND BACKUP
est conçue pour faire passer la base de données du mode copy-safe
au fonctionnement normal.Cette instruction fusionne le fichier delta avec le fichier principal de la base de données et rétablit le fonctionnement normal, ce qui ferme la possibilité de créer des sauvegardes sûres en utilisant le système de fichiers.(Une sauvegarde sûre utilisant l’utilitaire [app]``gbak'' reste disponible).
ALTER DATABASE
BEGIN BACKUP;
ALTER DATABASE
END BACKUP;
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.
ALTER DATABASE SET DEFAULT CHARACTER SET WIN1251;
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.
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 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) :
|
ALTER DATABASE SET LINGER 30;
ALTER DATABASE DROP LINGER;
ou
ALTER DATABASE SET LINGER 0;
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
Par exemple, la requête suivante
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.
ALTER DATABASE ENCRYPT WITH DbCrypt;
ALTER DATABASE DECRYPT;
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.
Qui peut exécuter l’opérateur ALTER DATABASE
:
Propriétaire de la base de données ;
Utilisateurs avec le privilège `ALTER DATABASE'.
DROP DATABASE
Suppression de la base de données actuelle.
DSQL, ESQL
DROP DATABASE
L’instruction DROP DATABASE
supprime la base de données actuelle.Avant que la base de données soit supprimée, elle doit être jointe.L’opérateur supprime le primaire, tous les fichiers secondaires et tous les fichiers de la copie fantôme.
Qui peut exécuter l’opérateur DROP DATABASE
:
Propriétaire de la base de données ;
Utilisateurs avec le privilège `DROP DATABASE'.
Suppression de la base de données à laquelle le client est connecté.
DROP DATABASE;