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

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;