REVOKE
La commande GRANT en SQL fait partie du Data Control Language, qui permet de réguler les accès aux bases de données en SQL. Cette commande sert à révoquer à un utilisateur des autorisations sur une base de données, ou seulement sur une table d’une base de données. Les autorisations qui avaient alors pu lui être accordées jusqu’ici et qui sont citées dans la commande sont annulées. Ces autorisations peuvent porter sur l’utilisation de la commande SELECT, ou sur toute autre commande SQL, dont celles d’édition des données.
Voici la syntaxe, avec les arguments les plus courants :
REVOKE permission ON database_name TO username ;
Ou, pour l’application sur une table plutôt que sur une base de données entière :
REVOKE permission ON table_name TO username ;
La commande suivante permet de révoquer toutes les autorisations accordées jusqu’ici à un utilisateur :
REVOKE ALL PRIVILEGES ON database_name TO username ;
Exemple d’utilisation :
Imaginons une base de données ‘gest_fact’, qu’une entreprise a créée pour stocker les données relatives aux factures qu’elle a émises : la liste des produits commercialisés par l’entreprise, la liste des factures émises par l’entreprise et le détail de chaque ligne de facture. ‘Gest_fact’ est constituée de trois tables : ‘produit’, ‘facture’ et ‘ligne_facture’. Imaginons qu’on ait attribué à un utilisateur user1, qui est un utilisateur interne à l’entreprise, la permission d’utiliser les commandes classiques de requête, d’édition, de mise-à-jour et de suppression de données, sur la table ‘produit’. Imaginons qu’on souhaite maintenant supprimer ces autorisations accordées à user1, car cet identifiant n’est plus sécurisé, par exemple. Voici le code correspondant :
--Plus tôt
GRANT SELECT, INSERT, UPDATE, DELETE ON produit TO user1 ;
--Maintenant, pour révoquer ces permissions
REVOKE ALL PRIVILEGES ON produit TO user1 ;
Voici le résultat de l'exécution du code. On voit que, même si SQL Server déconseille l'utilisation du mot-clef ALL, l'instruction a bien été exécutée.

Voici ce que donne la requête pour afficher toutes les permissions de user1 sur la table produit :

_
Nos formations sur https://www.apprendresql.com/
Voir autres : ALTER TABLE, CREATE TABLE, DROP TABLE, AND, AS, AUTO_INCREMENT, AVG(), BETWEEN, COUNT(), CROSS JOIN, DELETE, DISTINCT, FOREIGN KEY, FULL JOIN, GROUP BY, HAVING, IN, INNER JOIN, INSERT, INTERSECT, IS NULL, LEFT JOIN, LIKE, MAX(), MERGE, MIN(), NATURAL JOIN, OR, ORDER BY, PRIMARY KEY, RIGHT JOIN, SELECT, SUM(), UNION, UPDATE, WITH ROLLUP, GRANT, REVOKE, BEGIN TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT