Un langage de contrôle de données (LCD ; en anglais data control language, DCL) est un langage de programmation et un sous-ensemble de SQL pour contrôler l'accès aux données d'une base de données.
On distingue typiquement six types de commandes SQL de contrôle de données :
GRANT : autorisation d'un utilisateur à effectuer une action ;DENY : interdiction à un utilisateur d'effectuer une action ;REVOKE : annulation d'une commande de contrôle de données précédente ;COMMIT : validation d'une transaction en cours ;ROLLBACK : annulation d'une transaction en cours ;LOCK : verrouillage sur une structure de données.Autoriser un utilisateur à effectuer une action :
GRANT UPDATE (nom, prenom) ON eleves
TO enseignant
WITH GRANT OPTION;
Empêcher un utilisateur d'effectuer une action :
DENY DELETE
TO enseignant
Annuler la précédente commande de contrôle de données :
REVOKE UPDATE (nom, prenom)
ON eleves
FROM enseignant
Valider la transaction en cours :
START TRANSACTION;
UPDATE eleves
SET age = '19'
WHERE nom = 'Lacourt' and prenom = 'Stéphane';
COMMIT;
Annuler la transaction en cours :
ROLLBACK TO sauvegarde;
Verrouiller une structure de données :
LOCK TABLE eleves IN EXCLUSIVE MODE;