Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Lenguaje de Control de Datos | Algunos Temas Adicionales
Practice
Projects
Quizzes & Challenges
Cuestionarios
Challenges
/
Optimización de SQL y Características de Consulta

bookLenguaje de Control de Datos

Desliza para mostrar el menú

Lenguaje de Control de Datos (DCL) es un subconjunto de SQL utilizado para controlar el acceso a los datos almacenados en un sistema de gestión de bases de datos relacional.
Los comandos DCL se centran principalmente en conceder o revocar privilegios sobre objetos de la base de datos como tablas, vistas y esquemas.

Comandos DCL

Los dos comandos principales de DCL son:

  1. GRANT: este comando se utiliza para otorgar privilegios específicos a usuarios o roles;

  2. REVOKE: este comando se utiliza para eliminar privilegios específicos de usuarios o roles que hayan sido previamente concedidos.

Privilegios

Objetos

Implementación

Para conceder ciertos privilegios sobre un objeto en SQL a un usuario en particular, se puede utilizar la siguiente sentencia:

GRANT privileges
ON object
TO {user | role | PUBLIC};

Existen 3 tipos de roles en la base de datos a los que se pueden conceder privilegios:

  • user: un usuario individual de la base de datos;
  • role: un rol de base de datos, un grupo nombrado de privilegios que puede ser asignado a usuarios (por ejemplo, admin, developer, analyst);
  • PUBLIC: una palabra clave especial que otorga los privilegios especificados a todos los usuarios.

Se puede conceder un rol a un usuario utilizando la siguiente sentencia:

GRANT role TO user;

Finalmente, se pueden revocar los privilegios previamente concedidos utilizando la siguiente sentencia:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Ejemplo

A continuación se muestran algunos ejemplos de cómo utilizar el comando GRANT para asignar diferentes privilegios sobre las tablas bankaccounts y userlogs a distintos roles y usuarios.

-- Create role
CREATE ROLE bank_manager;

-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;

-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';

-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;

Ahora podemos revocar algunos de los privilegios concedidos:

-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;

-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
question mark

¿Qué privilegio permite a un usuario leer datos de una tabla?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 5
some-alt