Un langage de contrôle des données ( DCL ) est une syntaxe similaire à un langage de programmation informatique utilisé pour contrôler l'accès aux données stockées dans une base de données ( autorisation ). En particulier, il s'agit d'un composant du langage de requête structuré (SQL). Le langage de contrôle des données fait partie du groupe logique des commandes SQL. SQL est le langage standard des systèmes de gestion de bases de données relationnelles. Les instructions SQL sont utilisées pour effectuer des tâches telles que l'insertion de données dans une base de données, la suppression ou la mise à jour de données dans une base de données ou la récupération de données à partir d'une base de données.
Bien que les systèmes de bases de données utilisent SQL, ils ont également leurs propres extensions propriétaires supplémentaires qui ne sont généralement utilisées que sur leur système. Par exemple, le serveur Microsoft SQL utilise Transact-SQL (T-SQL), qui est une extension de SQL. De même, Oracle utilise PL-SQL, qui est leur extension propriétaire uniquement. Cependant, les commandes SQL standard telles que « Select », « Insert », « Update », « Delete », « Create » et « Drop » peuvent être utilisées pour accomplir presque tout ce que l'on doit faire avec une base de données.
Voici quelques exemples de commandes DCL :
- SUBVENTION pour permettre aux utilisateurs spécifiés d'effectuer des tâches spécifiées.
- REVOKE pour supprimer l'accessibilité de l'utilisateur à l'objet de base de données .
Les opérations pour lesquelles des privilèges peuvent être accordés ou révoqués à un utilisateur ou à un rôle s'appliquent à la fois au langage de définition de données (DDL) et au langage de manipulation de données (DML), et peuvent inclure CONNECT, SELECT , INSERT , UPDATE, DELETE , EXECUTE et USAGE.
Serveur Microsoft SQL
Selon Microsoft SQL Server, il existe quatre groupes de commandes SQL.
- Langage de manipulation de données (DML)
- Langage de définition de données (DDL)
- Langage de contrôle des données (DCL )
- Langage de contrôle des transactions (TCL)
Les commandes DCL sont utilisées pour le contrôle d'accès et la gestion des autorisations des utilisateurs dans la base de données. Grâce à elles, nous pouvons facilement autoriser ou refuser certaines actions des utilisateurs sur les tables ou les enregistrements (sécurité au niveau des lignes).
Les commandes DCL sont :
- ACCORDER
- Nous pouvons donner certaines autorisations pour la table (et d'autres objets) pour des groupes/utilisateurs spécifiques d'une base de données.
- REFUSER
- interdit certaines autorisations aux groupes/utilisateurs.
- RÉVOQUER
- cette commande supprime les autorisations des groupes/utilisateurs.
Par exemple : GRANT peut être utilisé pour donner des privilèges à l'utilisateur pour effectuer des opérations SELECT, INSERT, UPDATE et DELETE sur une table spécifique ou sur plusieurs tables.
La commande REVOKE est utilisée pour reprendre un privilège (par défaut) ou pour révoquer une commande spécifique comme UPDATE ou DELETE en fonction des besoins.
Exemple
Accorder SELECT , INSERT , UPDATE , DELETE sur Employee à User1 Révoquer INSERT sur Employee To user1 Refuser la mise à jour sur l'employé à l'utilisateur 1
GRANT dans le premier cas, nous avons donné des privilèges à l'utilisateur User1 pour effectuer SELECT, INSERT, UPDATE et DELETE sur la table appelée employés.
REVOKE avec cette commande nous pouvons reprendre le privilège par défaut, dans ce cas, nous reprenons la commande INSERT sur la table employee pour l'utilisateur User1.
DENY est une commande spécifique. Nous pouvons en conclure que chaque utilisateur dispose d'une liste de privilèges qui lui sont refusés ou accordés, la commande DENY est donc là pour vous interdire explicitement certains privilèges sur les objets de la base de données :
Base de données Oracle
Oracle Database divise les commandes SQL en différents types. Ils sont.
- Déclarations du langage de définition de données (DDL)
- Instructions du langage de manipulation de données (DML)
- Déclarations de contrôle des transactions
- Déclarations de contrôle de session
- Déclaration de contrôle du système
- Instructions SQL intégrées
Pour plus de détails, reportez-vous à Oracle- TCL
Les instructions du langage de définition de données (DDL) vous permettent d'effectuer ces tâches :
- Créer, modifier et supprimer des objets de schéma
- Accorder et révoquer des privilèges et des rôles
- Analyser les informations sur une table, un index ou un cluster
- Établir des options d’audit
- Ajouter des commentaires au dictionnaire de données
Ainsi, les commandes DDL d'Oracle Database incluent les privilèges d'octroi et de révocation , qui font en fait partie du langage de contrôle des données dans Microsoft SQL Server.
Syntaxe pour l'octroi et la révocation dans la base de données Oracle :
Exemple
ACCORDER SELECT , INSERT , UPDATE , DELETE SUR db1 . Employé À utilisateur1 ; RÉVOQUER SELECT , INSERT , UPDATE , DELETE ON db1 . Employé DE user1 ;
Instructions de contrôle des transactions dans Oracle
Les instructions de contrôle des transactions gèrent les modifications apportées par les instructions DML. Les instructions de contrôle des transactions sont les suivantes :
- COMMETTRE
- RETOUR EN ARRIÈRE
- POINT DE SAUVEGARDE
- DÉFINIR LA TRANSACTION
- ENSEMBLE DE CONTRAINTES
MySQL
Serveur MySQL, ils divisent les instructions SQL en différents types d'instructions
- Déclarations de définition des données
- Déclarations de manipulation de données
- Déclarations transactionnelles et de verrouillage
- Déclarations de réplication
- Déclarations préparées
- Syntaxe des instructions composées
- Déclarations d'administration de la base de données
- Déclarations d'utilité
Pour plus de détails, reportez-vous aux instructions transactionnelles MySQL
La syntaxe d'octroi et de révocation fait partie des instructions d'administration de base de données et du système de gestion de compte.
L'instruction GRANT permet aux administrateurs système d'accorder des privilèges et des rôles, qui peuvent être accordés aux comptes et aux rôles d'utilisateur. Les restrictions de syntaxe suivantes s'appliquent :
- GRANT ne peut pas combiner l'octroi de privilèges et de rôles dans la même instruction. Une instruction GRANT donnée doit accorder soit des privilèges, soit des rôles.
- La clause ON distingue si l'instruction accorde des privilèges ou des rôles :
- Avec ON, l'instruction accorde des privilèges
- Sans ON, l'instruction accorde des rôles.
- Il est permis d'attribuer à la fois des privilèges et des rôles à un compte, mais vous devez utiliser des instructions GRANT distinctes, chacune avec une syntaxe appropriée à ce qui doit être accordé.
L'instruction REVOKE permet aux administrateurs système de révoquer les privilèges et les rôles, qui peuvent être révoqués des comptes et des rôles d'utilisateur.
Exemples
ANNULER L'INSERTION SUR * . * DE 'jeffrey' @'localhost' ; RÉVOQUER 'role1' , 'role2' DE 'user1' @'localhost' , 'user2' @'localhost' ; ANNULER LA SÉLECTION SUR monde . * DE 'role3' ; ACCORDER TOUT SUR db1 . * À 'jeffrey' @'localhost' ; ACCORDER 'role1' , 'role2' à 'user1' @'localhost' , 'user2' @'localhost' ; ACCORDER SELECT SUR monde . * À 'role3' ;
Dans PostgreSQL , l’exécution de DCL est transactionnelle et peut être annulée.
Grant et Revoke sont les commandes SQL utilisées pour contrôler les privilèges accordés aux utilisateurs dans une base de données
SQLite ne dispose d'aucune commande DCL car il ne dispose pas de noms d'utilisateur ou de connexions. Au lieu de cela, SQLite dépend des autorisations du système de fichiers pour définir qui peut ouvrir et accéder à une base de données.