-- 1. Crear los usuarios
CREATE USER 'harry'@'%' IDENTIFIED BY 'potter123';
CREATE USER 'hermoinie'@'%' IDENTIFIED BY 'granger456';
CREATE USER 'ronald'@'%' IDENTIFIED BY 'weasly789';
CREATE USER 'sirius'@'%' IDENTIFIED BY 'black987';
CREATE USER 'thomas'@'%' IDENTIFIED BY 'riddle666';
CREATE USER 'muggle'@'%' IDENTIFIED BY 'xyz321';

-- 2. Crear los roles
CREATE ROLE 'Administrador';
CREATE ROLE 'AdmonNegocio';
CREATE ROLE 'AdmonInventario';
CREATE ROLE 'AdmonClientes';
CREATE ROLE 'Cliente';

-- 3 al 7. Asignar los roles a los usuarios
GRANT 'Administrador' TO 'sirius'@'%';
GRANT 'AdmonNegocio' TO 'harry'@'%';
GRANT 'AdmonInventario' TO 'hermoinie'@'%';
GRANT 'AdmonClientes' TO 'ronald'@'%';
GRANT 'Cliente' TO 'thomas'@'%';
GRANT 'Cliente' TO 'muggle'@'%';

-- 8. Permitir al rol Administrador cualquier acción sobre todas las tablas
GRANT ALL PRIVILEGES ON sakila.* TO 'Administrador';

-- 9. Permitir al rol AdmonNegocio cualquier acción sobre staff, store, payment y rental
GRANT ALL PRIVILEGES ON sakila.staff TO 'AdmonNegocio';
GRANT ALL PRIVILEGES ON sakila.store TO 'AdmonNegocio';
GRANT ALL PRIVILEGES ON sakila.payment TO 'AdmonNegocio';
GRANT ALL PRIVILEGES ON sakila.rental TO 'AdmonNegocio';

-- 10. Permitir al rol AdmonInventario cualquier acción sobre las tablas de películas e inventario
GRANT ALL PRIVILEGES ON sakila.film TO 'AdmonInventario';
GRANT ALL PRIVILEGES ON sakila.film_category TO 'AdmonInventario';
GRANT ALL PRIVILEGES ON sakila.language TO 'AdmonInventario';
GRANT ALL PRIVILEGES ON sakila.inventory TO 'AdmonInventario';
GRANT ALL PRIVILEGES ON sakila.actor TO 'AdmonInventario';
GRANT ALL PRIVILEGES ON sakila.film_actor TO 'AdmonInventario';
GRANT ALL PRIVILEGES ON sakila.film_text TO 'AdmonInventario';

-- 11. Permitir al rol AdmonClientes cualquier acción sobre country, customer, city y address
GRANT ALL PRIVILEGES ON sakila.country TO 'AdmonClientes';
GRANT ALL PRIVILEGES ON sakila.customer TO 'AdmonClientes';
GRANT ALL PRIVILEGES ON sakila.city TO 'AdmonClientes';
GRANT ALL PRIVILEGES ON sakila.address TO 'AdmonClientes';

-- 12. Permitir al rol Cliente solo acciones de consultas
GRANT SELECT ON sakila.* TO 'Cliente';

-- 13. Adicionar al usuario sirius los privilegios para manipular las vistas
GRANT CREATE VIEW, SHOW VIEW, DROP ON sakila.* TO 'sirius'@'%';

-- 14. Adicionar al rol AdmonNegocio los privilegios para consultar inventario y clientes
GRANT SELECT ON sakila.film TO 'AdmonNegocio';
GRANT SELECT ON sakila.film_category TO 'AdmonNegocio';
GRANT SELECT ON sakila.language TO 'AdmonNegocio';
GRANT SELECT ON sakila.inventory TO 'AdmonNegocio';
GRANT SELECT ON sakila.actor TO 'AdmonNegocio';
GRANT SELECT ON sakila.film_actor TO 'AdmonNegocio';
GRANT SELECT ON sakila.film_text TO 'AdmonNegocio';
GRANT SELECT ON sakila.country TO 'AdmonNegocio';
GRANT SELECT ON sakila.customer TO 'AdmonNegocio';
GRANT SELECT ON sakila.city TO 'AdmonNegocio';
GRANT SELECT ON sakila.address TO 'AdmonNegocio';

-- Actualizar los cambios de los privilegios
FLUSH PRIVILEGES;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: