Un lenguaje de control de datos ( DCL ) es una sintaxis similar a un lenguaje de programación informática que se utiliza para controlar el acceso a los datos almacenados en una base de datos ( autorización ). En particular, es un componente del lenguaje de consulta estructurado (SQL). El lenguaje de control de datos forma parte del grupo lógico de comandos SQL. SQL [1] es el lenguaje estándar para los sistemas de gestión de bases de datos relacionales. Las sentencias SQL se utilizan para realizar tareas como insertar datos en una base de datos, eliminar o actualizar datos en una base de datos o recuperar datos de una base de datos.
Aunque los sistemas de bases de datos utilizan SQL, también tienen sus propias extensiones propietarias adicionales que normalmente solo se utilizan en su sistema. Por ejemplo, el servidor Microsoft SQL utiliza Transact-SQL (T-SQL), que es una extensión de SQL. De manera similar, Oracle utiliza PL-SQL, que es su extensión propietaria únicamente. Sin embargo, los comandos SQL estándar como "Seleccionar", "Insertar", "Actualizar", "Eliminar", "Crear" y "Eliminar" se pueden utilizar para lograr casi todo lo que uno necesita hacer con una base de datos.
Algunos ejemplos de comandos DCL incluyen:
Las operaciones para las cuales se pueden otorgar o revocar privilegios a un usuario o rol se aplican tanto al lenguaje de definición de datos (DDL) como al lenguaje de manipulación de datos (DML), y pueden incluir CONECTAR, SELECCIONAR , INSERTAR , ACTUALIZAR, ELIMINAR , EJECUTAR y USO.
Según Microsoft SQL Server, hay cuatro grupos de comandos SQL.
Los comandos DCL se utilizan para el control de acceso y la gestión de permisos de los usuarios en la base de datos. Con ellos podemos permitir o denegar fácilmente algunas acciones de los usuarios en las tablas o registros (seguridad a nivel de fila).
Los comandos DCL son:
Por ejemplo: GRANT se puede utilizar para otorgar privilegios al usuario para realizar SELECCIONAR, INSERTAR, ACTUALIZAR y ELIMINAR en una tabla específica o en varias tablas.
El comando REVOKE se utiliza para recuperar un privilegio (predeterminado) o revocar un comando específico como UPDATE o DELETE según los requisitos.
Otorgar SELECT , INSERT , UPDATE , DELETE en Empleado a Usuario1 Revocar INSERT en Empleado a usuario1 Denegar actualización de empleado al usuario1
GRANT en el primer caso le dimos privilegios al usuario Usuario1 para hacer SELECT, INSERT, UPDATE y DELETE en la tabla llamada empleados.
REVOKE con este comando podemos devolver el privilegio a los valores por defecto, en este caso retomamos el comando INSERT sobre la tabla empleados para el usuario Usuario1.
DENY es un comando específico. Podemos concluir que cada usuario tiene una lista de privilegios que se le niegan o se le conceden, por lo que el comando DENY está ahí para prohibirle explícitamente algunos privilegios en los objetos de la base de datos:
Oracle Database divide los comandos SQL en diferentes tipos. Son:
Para obtener más detalles, consulte Oracle- [3] TCL
Las declaraciones del lenguaje de definición de datos (DDL) le permiten realizar estas tareas:
Por lo tanto, los comandos DDL de Oracle Database incluyen otorgar y revocar privilegios, que en realidad son parte del lenguaje de control de datos en el servidor Microsoft SQL.
Sintaxis para otorgar y revocar en Oracle Database:
CONCEDER SELECCIONAR , INSERTAR , ACTUALIZAR , ELIMINAR EN db1 . Empleado A usuario1 ; REVOCAR SELECCIONAR , INSERTAR , ACTUALIZAR , ELIMINAR EN db1 . Empleado DE usuario1 ;
Las sentencias de control de transacciones administran los cambios realizados por sentencias DML. Las sentencias de control de transacciones son:
El servidor MySQL divide las sentencias SQL en diferentes tipos de sentencias.
Para obtener más detalles, consulte las declaraciones transaccionales de MySQL [4]
La sintaxis de concesión y revocación son parte de las declaraciones de administración de bases de datosàSistema de gestión de cuentas.
La declaración GRANT permite a los administradores del sistema otorgar privilegios y roles, que pueden otorgarse a cuentas y roles de usuario. Se aplican las siguientes restricciones de sintaxis:
La declaración REVOKE permite a los administradores del sistema revocar privilegios y roles, que pueden revocarse desde cuentas y roles de usuario.
REVOCAR INSERTAR EN * . * DE 'jeffrey' @'localhost' ; REVOCAR 'rol1' , 'rol2' DE 'usuario1' @'localhost' , 'usuario2' @'localhost' ; REVOCAR SELECCIONAR EN mundo . * DE 'role3' ; CONCEDER TODO EN db1 . * A 'jeffrey' @'localhost' ; CONCEDER 'rol1' , 'rol2' A 'usuario1' @'localhost' , 'usuario2' @'localhost' ; CONCEDER SELECCIONAR EN mundo . * A 'role3' ;
En PostgreSQL , la ejecución de DCL es transaccional y se puede revertir.
Otorgar y revocar son comandos SQL que se utilizan para controlar los privilegios otorgados a los usuarios en una base de datos.
SQLite no tiene ningún comando DCL, ya que no tiene nombres de usuario ni inicios de sesión. En cambio, SQLite depende de los permisos del sistema de archivos para definir quién puede abrir y acceder a una base de datos. [5]