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 es uno del grupo lógico de los comandos SQL. SQL [1] es el lenguaje estándar para sistemas de gestión de bases de datos relacionales. Las declaraciones 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 usan SQL, también tienen sus propias extensiones propietarias adicionales que generalmente solo se usan 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 usa PL-SQL, que es su extensión patentada solo para ellos. 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.
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 para los usuarios en la base de datos. Con ellos podemos permitir o denegar fácilmente algunas acciones para 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 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 ACTUALIZAR o ELIMINAR según los requisitos.
Otorgar SELECCIONAR , INSERTAR , ACTUALIZAR , ELIMINAR en Empleado a Usuario1 Revocar INSERT en empleado a usuario1 Denegar actualización del empleado al usuario1
GRANT en el primer caso le dimos privilegios al usuario Usuario1 para SELECCIONAR, INSERTAR, ACTUALIZAR y ELIMINAR en la tabla llamada empleados.
REVOCAR con este comando podemos recuperar el privilegio predeterminado; en este caso, recuperamos el comando INSERTAR en 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 conceden, por lo que el comando DENY está ahí para prohibirle explícitamente algunos privilegios sobre los objetos de la base de datos:
Oracle Database divide los comandos SQL en diferentes tipos. Ellos son.
Para 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 la base de datos de Oracle incluyen otorgar y revocar privilegios, que en realidad forman parte del lenguaje de control de datos en el servidor Microsoft SQL.
Sintaxis para otorgar y revocar en Oracle Database:
OTORGAR SELECCIONAR , INSERTAR , ACTUALIZAR , ELIMINAR EN db1 . Empleado A usuario1 ; REVOCAR SELECCIONAR , INSERTAR , ACTUALIZAR , ELIMINAR EN db1 . Empleado DE usuario1 ;
Las declaraciones de control de transacciones gestionan los cambios realizados por las declaraciones DML. Las declaraciones de control de transacciones son:
Servidor MySQL dividen las declaraciones SQL en diferentes tipos de declaraciones
Para obtener más información, consulte Declaraciones transaccionales de MySQL [4]
La sintaxis de concesión y revocación forma parte de las declaraciones de administración de la base de datos: Sistema de gestión de cuentas.
La declaración GRANT permite a los administradores del sistema otorgar privilegios y roles, que se pueden otorgar a cuentas y roles de usuario. Se aplican estas restricciones de sintaxis:
La declaración REVOKE permite a los administradores del sistema revocar privilegios y roles, que pueden revocarse de cuentas y roles de usuario.
REVOCAR INSERTAR EN * . * DESDE 'jeffrey' @'localhost' ; REVOCAR 'rol1' , 'rol2' FROM 'usuario1' @'localhost' , 'usuario2' @'localhost' ; REVOCAR SELECCIÓN EN mundo . * DESDE 'rol3' ; CONCEDER TODO EN db1 . * A 'jeffrey' @'localhost' ; GRANT 'rol1' , 'rol2' A 'usuario1' @'localhost' , 'usuario2' @'localhost' ; GRANT SELECT ON mundo . * A 'rol3' ;
En PostgreSQL , la ejecución de DCL es transaccional y se puede revertir.
Otorgar y Revocar son los 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]