FirebirdSQL logo

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;