FirebirdSQL logo
 RôlesLes opérateurs peuvent révoquer des privilèges et des rôles 

Exemples de `GRANT <privilege>' pour les tables

Example 1. Accorder des privilèges aux tables
-- privilèges SELECT, INSERT à l'utilisateur ALEX
GRANT SELECT, INSERT ON TABLE SALES
TO USER ALEX;

-- Privilège SELECT pour les utilisateurs MANAGER, ENGINEER et IVAN
GRANT SELECT ON TABLE CUSTOMER
TO ROLE MANAGER, ROLE ENGINEER, USER IVAN;

-- Tous les privilèges du rôle d'ADMINISTRATEUR
-- avec la possibilité de déléguer leurs pouvoirs
GRANT ALL ON TABLE CUSTOMER
TO ROLE ADMINISTRATOR WITH GRANT OPTION;

-- privilèges SELECT et REFRENCE pour la colonne NOM pour tous les utilisateurs
GRANT SELECT, REFERENCES (NAME) ON TABLE COUNTRY
TO PUBLIC;

-- Accorder le privilège SELECT à l'utilisateur IVAN au nom de l'utilisateur ALEX
GRANT SELECT ON TABLE EMPLOYEE
TO USER IVAN GRANTED BY ALEX;

-- Privilège UPDATE pour les colonnes FIRST_NAME, LAST_NAME
GRANT UPDATE (FIRST_NAME, LAST_NAME) ON TABLE EMPLOYEE
TO USER IVAN;

-- Privilège INSERT pour la procédure stockée ADD_EMP_PROJ
GRANT INSERT ON EMPLOYEE_PROJECT
TO PROCEDURE ADD_EMP_PROJ;

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;

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.