FirebirdSQL logo

Privilège `EXECUTE'.

Le privilège EXECUTE (exécuter) s’applique aux procédures stockées, aux fonctions stockées, aux packages et aux fonctions externes héritées (UDF) définies comme DECLARE EXTERNAL FUNCTION.

Pour les procédures stockées, le privilège EXECUTE permet non seulement d’exécuter des procédures stockées mais aussi de sélectionner des données dans des procédures sélectives (à l’aide de l’opérateur SELECT).

Note

Ce privilège ne peut être attribué qu’à l’ensemble du paquet, et non à des sous-programmes individuels.

Exemples d’octroi du privilège `EXECUTE'.

Example 1. Accorder le privilège `EXECUTE'.
-- Privilège EXECUTE sur une procédure stockée
GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ
TO ROLE MANAGER;

-- Privilège EXECUTE sur une fonction stockée
GRANT EXECUTE ON FUNCTION GET_BEGIN_DATE TO ROLE MANAGER;

-- privilège EXECUTE par paquet
GRANT EXECUTE ON PACKAGE APP_VAR TO PUBLIC;

-- privilège EXECUTE sur une fonction donnée à un package
GRANT EXECUTE ON FUNCTION GET_BEGIN_DATE
TO PACKAGE APP_VAR;

docnext count = 5

Privilège `USAGE'.

Pour utiliser des objets de métadonnées autres que des tables, des vues, des procédures et fonctions stockées, des déclencheurs et des paquets dans des requêtes utilisateur, l’utilisateur doit se voir attribuer le privilège USAGE pour ces objets. Étant donné que les procédures et fonctions stockées, les déclencheurs et les routines de paquets dans Firebird sont exécutés avec des privilèges d’utilisateur appelant, il peut être nécessaire d’attribuer le privilège USAGE à ceux-ci également lors de l’utilisation de tels objets de métadonnées dans ceux-ci.

Note

Dans Firebird 3, le privilège USAGE est vérifié uniquement pour les exceptions (exceptions) et les générateurs/séquences (dans gen_id(gen_name, n) ou next value for gen_name). Des privilèges pour d’autres objets de métadonnées peuvent être inclus dans des versions futures si cela est jugé approprié.

Note

Le privilège USAGE donne uniquement le droit d’incrémenter des générateurs (séquences) en utilisant la fonction GEN_ID ou la construction NEXT VALUE FOR. L’instruction SET GENERATOR est analogue à l’instruction ALTER SEQUENCE …​ RESTART WITH, qui sont des opérateurs DDL. Par défaut, seul le propriétaire du générateur (séquence) a les droits pour de telles opérations. Le droit de définir la valeur initiale de tout générateur (séquence) peut être accordé par GRANT ALTER ANY SEQUENCE, ce qui n’est pas recommandé pour les utilisateurs normaux.

Exemples d’octroi du privilège `USAGE'.

Example 1. Accorder le privilège "USAGE".
-- privilège USAGE sur la cohérence du rôle délivré
GRANT USAGE ON SEQUENCE GEN_AGE TO ROLE MANAGER;

-- privilège USAGE sur la séquence émise au déclencheur
GRANT USAGE ON SEQUENCE GEN_AGE TO TRIGGER TR_AGE_BI;

-- privilège d'exemption USAGE accordé à un paquet
GRANT USAGE ON EXCEPTION E_ACCESS_DENIED
TO PACKAGE PKG_BILL;

Privilèges DDL

Par défaut, seuls les Administrateurs peuvent créer de nouveaux objets de métadonnées, et les administrateurs et propriétaires de ces objets peuvent les modifier et les supprimer. L’octroi de privilèges pour créer, modifier ou supprimer des objets d’un type particulier permet d’étendre cette liste.

Liste des privilèges DDL
CREATE

Permet la création d’un objet du type de métadonnées spécifié.

ALTER ANY

Permet de modifier tout objet du type de métadonnées spécifié.

DROP ANY

Permet de supprimer tout objet du type de métadonnées spécifié.

ALL

Combine les privilèges CREATE, ALTER et DROP sur le type d’objet spécifié.

Note

Les métadonnées des déclencheurs et des index héritent des privilèges des tables qui les possèdent.

Exemples de fourniture de privilèges DDL

Example 1. Accorder des privilèges pour modifier les métadonnées
-- Autoriser l'utilisateur Joe à créer des tables
GRANT CREATE TABLE TO Joe;

-- Permettre à l'utilisateur Joe de modifier toutes les procédures
GRANT ALTER ANY PROCEDURE TO Joe;

Privilèges DDL pour la base de données

L’instruction d’attribution de privilèges pour la création, la suppression et la modification d’une base de données a une forme légèrement différente de l’instruction d’attribution de privilèges DDL pour les autres objets de métadonnées.

Liste des privilèges DDL par base de données
CREATE

Permet la création d’une base de données.

ALTER

Permet de modifier la base de données actuelle.

DROP

Permet de supprimer la base de données actuelle.

ALL

Combine les privilèges ALTER et DROP par base de données.

Le privilège CREATE DATABASE est un type de privilège spécial car il est stocké dans la base de données de sécurité. La liste des utilisateurs disposant du privilège CREATE DATABASE peut être consultée dans la table virtuelle SEC$DB_CREATORS. Seuls les Administrateurs de la base de données de sécurité peuvent accorder le privilège de créer une nouvelle base de données.

Les privilèges ALTER DATABASE et DROP DATABASE s’appliquent uniquement à la base de données actuelle, tandis que les privilèges DDL ALTER ANY et DROP ANY sur d’autres objets de métadonnées s’appliquent à tous les objets du type spécifié dans la base de données actuelle. Seuls les Administrateurs peuvent accorder des privilèges pour modifier et supprimer la base de données actuelle.