17.5. Fonctions et déclencheurs (triggers)

Les fonctions et les déclencheurs autorisent à l'intérieur du serveur les utilisateurs à insérer du code que d'autres utilisateurs ne connaissent pas mais peuvent exécuter. Par conséquent, les deux mécanismes permettent aux utilisateurs d'utiliser un << cheval de Troie >> contre d'autres avec une relative impunité. La seule protection réelle est d'effectuer un fort contrôle sur ceux qui peuvent définir des fonctions.

Les fonctions écrites dans n'importe quel langage à l'exception de SQL tourne à l'intérieur d'un processus d'arrière-plan du serveur, avec les droits du système d'exploitation accordés processus démon du serveur de base de données. Il est alors possible de changer les structures de données internes du serveur à partir de fonctions auxquelles il est fait confiance. Par conséquence, de telles fonctions peuvent éviter tous les contrôles d'accès du système. Ceci est un problème inhérent avec la définition de fonctions C par les utilisateurs.