stringtranslate.com

Lenguaje de control de datos

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.

Servidor Microsoft SQL

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:

CONCEDER
Podemos otorgar ciertos permisos para la tabla (y otros objetos) para grupos/usuarios específicos de una base de datos.
DENEGAR
Prohíbe ciertos permisos a grupos/usuarios.
REVOCAR
Este comando quita permisos a grupos/usuarios.

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.

Ejemplo

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:

Base de datos Oracle

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:

Ejemplo

CONCEDER SELECCIONAR , INSERTAR , ACTUALIZAR , ELIMINAR EN db1 . Empleado A usuario1 ;        REVOCAR SELECCIONAR , INSERTAR , ACTUALIZAR , ELIMINAR EN db1 . Empleado DE usuario1 ;        

Sentencias de control de transacciones en Oracle

Las sentencias de control de transacciones administran los cambios realizados por sentencias DML. Las sentencias de control de transacciones son:

MySQL

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.

Ejemplos

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]

Véase también

Referencias

  1. ^ "El estándar SQL – ISO/IEC 9075:2016 (ANSI X3.135) – Blog de ANSI". El blog de ANSI . 2018-10-05 . Consultado el 2020-09-19 .
  2. ^ "TechNet Wiki". social.technet.microsoft.com . Consultado el 19 de septiembre de 2020 .
  3. ^ "Referencia del lenguaje SQL de bases de datos". docs.oracle.com . Consultado el 19 de septiembre de 2020 .
  4. ^ "MySQL :: Manual de referencia de MySQL 8.0 :: 13.7.1 Extractos de administración de cuentas". dev.mysql.com . Consultado el 19 de septiembre de 2020 .
  5. ^ Kreibich, JA, 2010. Usando SQLite, O'Reilly.