FirebirdSQL logo

Clause ADMIN OPTION FOR

L’offre optionnelle ADMIN OPTION FOR annule une option administrative précédemment accordée (le droit de transférer un rôle accordé à un utilisateur à d’autres) aux bénéficiaires sans annuler les droits au rôle.

Exemples d’inversion des rôles

Example 1. Inversion des rôles
-- Retrait de DIRECTOR, MANAGER de l'utilisateur IVAN
REVOKE DIRECTOR, MANAGER FROM USER IVAN;

-- Retrait du rôle MANAGER par défaut de l'utilisateur FEDOR
REVOKE DEFAULT MANAGER FROM USER FEDOR;

-- Retrait du rôle de MANAGER et du droit de l'attribuer à d'autres utilisateurs
REVOKE ADMIN OPTION FOR MANAGER FROM USER ALEX;

Clause GRANTED BY

Lorsque l’on accorde des droits dans une base de données, l’utilisateur actuel est généralement enregistré comme la personne qui accorde les droits. En utilisant la clause GRANTED BY, il est possible d’accorder des droits au nom d’un autre utilisateur. Lorsque l’on utilise l’instruction REVOKE après GRANTED BY, les droits ne seront supprimés que s’ils ont été enregistrés par l’utilisateur qui les a supprimés. Pour faciliter la migration depuis d’autres bases de données relationnelles, l’instruction non standard AS est supportée comme synonyme de l’instruction GRANTED BY.

La phrase GRANTED BY peut être utilisée :

  • Le propriétaire de la base de données ;

  • LE SYSDBA ;

  • Tout utilisateur ayant des droits sur le rôle RDB$ADMIN et l’ayant spécifié lors de la connexion à la base de données ;

  • Lors de l’utilisation du drapeau AUTO ADMIN MAPPING — tout administrateur Windows (tant que le serveur utilise l’authentification de confiance), même sans spécifier un rôle.

Même le propriétaire du rôle ne peut pas utiliser `GRANTED BY' à moins qu’il ne soit dans la liste ci-dessus.

Révocation de privilèges à l’aide de `GRANTED BY

Example 1. Révocation de privilèges sur une table à l’aide de `GRANTED BY'.
-- révocation du privilège SELECT de l'utilisateur IVAN,
-- qui a été émis par l'utilisateur ALEX
REVOKE SELECT ON TABLE EMPLOYEE
FROM USER IVAN GRANTED BY ALEX;