Tables externes

La clause optionnelle EXTERNAL [FILE] indique que la table est stockée en dehors de la base de données dans un fichier texte externe. Les colonnes d'une table stockée dans un fichier externe peuvent être de n'importe quel type, à l'exception des BLOB et des tableaux avec n'importe quel type de données.

Seules les opérations d'ajout de nouvelles lignes (INSERT) et de sélection de données (SELECT) sont autorisées sur une table stockée dans un fichier externe. Les opérations de modification des données existantes (UPDATE) ou de suppression des lignes de cette table (DELETE) ne peuvent pas être effectuées.

Une table externe ne peut pas contenir de restrictions concernant les clés primaires, externes et uniques. Aucun index ne peut être créé pour les champs d'une telle table.

Le fichier de table externe doit être situé sur un périphérique de stockage physiquement situé sur le serveur hébergeant le SGBD. Si le [paramètre]``ExternalFileAccess'' du fichier de configuration firebird.conf contient `Restrict', le fichier de la table externe doit être situé dans l'un des répertoires spécifiés dans l'argument `Restrict'. Si Firebird ne trouve pas le fichier lors de l'accès à la table, il le créera lors du premier accès.

Important

La possibilité d'utiliser des fichiers externes pour les tables dépend de la valeur du ExternalFileAccess dans le fichier de configuration firebird.conf :

  • S'il est défini à None, tout accès au fichier externe est refusé.

  • La valeur Restrict est recommandée pour limiter l'accès aux fichiers externes aux répertoires créés spécifiquement à cet effet par l'administrateur du serveur. Par exemple :

    • ExternalFileAccess = Restrict externalfiles limitera l'accès au répertoire externalfiles du répertoire racine de Firebird.

    • ExternalFileAccess = Restrict d:\databases\outfiles ; e:\infiles limitera l'accès à deux répertoires Windows seulement. Notez que les chemins qui sont des mappings de chemins de réseau ne fonctionneront pas. Les chemins entre guillemets simples ou doubles ne fonctionnent pas non plus.

  • La valeur "Full" permet d'accéder aux fichiers externes n'importe où sur le système de fichiers de l'hôte. Cela crée une vulnérabilité et n'est pas recommandé.