FirebirdSQL logo

Clause FROM

La clause FROM spécifie une liste d’utilisateurs, de rôles et d’objets de base de données (procédures, fonctions, packages, triggers et vues) auxquels les privilèges listés seront retirés. Les clauses optionnelles USER et ROLE vous permettent de spécifier qui possède le privilège. Si le mot-clé USER ou ROLE n’est pas spécifié, le serveur vérifie si le rôle portant ce nom existe, sinon les privilèges sont retirés à l’utilisateur.

Tip
Recommandation

Bien que les mots-clés USER et ROLE soient facultatifs, il est conseillé de les utiliser pour éviter toute confusion.

L’existence de l’utilisateur auquel les privilèges sont retirés n’est pas vérifiée lors de l’exécution de l’opérateur REVOKE. Si le privilège est retiré à un objet de la base de données, il est obligatoire de spécifier le type d’objet.

Important

Si des privilèges ont été attribués à un utilisateur spécial PUBLIC, alors les privilèges doivent être révoqués pour l’utilisateur PUBLIC. L’utilisateur spécial PUBLIC est utilisé lorsque tous les utilisateurs doivent se voir accorder des privilèges en même temps. Cependant, ne traitez pas l’utilisateur PUBLIC comme un groupe d’utilisateurs.

Exemples de révocation de privilèges

Example 1. Révocation des privilèges de table
-- Révocation des privilèges SELECT, INSERT d'une table
REVOKE SELECT, INSERT ON TABLE SALES FROM USER ALEX

-- révoquer le privilège SELECT des rôles MANAGER et ENGINEER et de l'utilisateur IVAN
REVOKE SELECT ON TABLE CUSTOMER
FROM ROLE MANAGER, ROLE ENGINEER, USER IVAN;

-- révocation des privilèges SELECT et REFERENCES pour l'utilisateur PUBLIC
REVOKE SELECT, REFERENCES (NAME) ON TABLE COUNTRY
FROM PUBLIC;

-- Révocation du privilège UPDATE pour les colonnes FIRST_NAME, LAST_NAME
REVOKE UPDATE (FIRST_NAME, LAST_NAME) ON TABLE EMPLOYEE
FROM USER IVAN;

-- Révocation du privilège INSERT de la procédure stockée ADD_EMP_PROJ
REVOKE INSERT ON EMPLOYEE_PROJECT
FROM PROCEDURE ADD_EMP_PROJ;
Example 2. Révocation du privilège "EXECUTER".
-- révocation du privilège EXECUTE sur la procédure
REVOKE EXECUTE ON PROCEDURE ADD_EMP_PROJ
FROM USER IVAN;

-- révocation du privilège EXECUTE par paquet
REVOKE EXECUTE ON PACKAGE DATE_UTILS
FROM USER ALEX;
Example 3. Révocation du privilège de usage.
-- Révocation du privilège USAGE sur une séquence de rôles émise
REVOKE USAGE ON SEQUENCE GEN_AGE FROM ROLE MANAGER;

-- Révocation du privilège USAGE sur une séquence délivrée à un déclencheur
REVOKE USAGE ON SEQUENCE GEN_AGE FROM TRIGGER TR_AGE_BI;

-- Révocation du privilège d'exemption USAGE accordé à un colis
REVOKE USAGE ON EXCEPTION E_ACCESS_DENIED
FROM PACKAGE PKG_BILL;
Example 4. Révocation des privilèges de modification des métadonnées
-- Retrait des privilèges de création de table à l'utilisateur Joe
REVOKE CREATE TABLE FROM Joe;

-- Retrait du privilège à l'utilisateur Joe de modifier toute procédure
REVOKE ALTER ANY PROCEDURE FROM Joe;

-- Révocation du privilège de l'utilisateur pour créer une base de données
-- de l'utilisateur Superuser
REVOKE CREATE DATABASE FROM USER Superuser;
Example 5. Révocation des privilèges du système
-- Révocation de tous les droits du privilège système USER_MANAGEMENT
-- pour représenter PLG$SRP_VIEW
REVOKE ALL ON PLG$SRP_VIEW FROM SYSTEM PRIVILEGE USER_MANAGEMENT;