t10 - gestion de usuarios
DESCRIPTION
Gestión de usuarios y permisos en MySQLTRANSCRIPT
![Page 1: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/1.jpg)
Tema – 10Gestión de usuarios
![Page 2: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/2.jpg)
Índice
1. Creación de usuarios
2. Consultar usuarios creados
3. Borrar usuarios
4. Cambiar nombre a un usuario
5. Cambiar password
6. Otorgar permisos
7. Ver permisos
8. Quitar permisos
9. Niveles de los permisos
2
![Page 3: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/3.jpg)
10.1. Creación de usuarios
• La sentencia para añadir un usuario en MySQL es la siguiente:
CREATE USER nombre_usuario
IDENTIFIED BY ‘contraseña’;
• Ejemplo 1:CREATE USER dani
IDENTIFIED BY ‘12345’;
• Ejemplo 2:CREATE USER dani;
3
![Page 4: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/4.jpg)
10.1. Creación de usuarios
• Si queremos evitar que un usuario pueda conectarse desde cualquier máquina a nuestro servidor MySQL, podemos crear al usuario limitando su acceso a una máquina concreta. Lo haremos usando la siguiente nomenclatura:
nombre_usuario@host
4
![Page 5: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/5.jpg)
10.1. Creación de usuarios
• Ejemplo 1: el usuario dani sólo puede acceder de forma local:
CREATE USER dani@localhost
IDENTIFIED BY ‘12345’;• Ejemplo 2: el usuario dani sólo puede acceder
desde la red 192.168.1.0:
CREATE USER dani@‘192.168.1.%’
IDENTIFIED BY ‘67890’;
5
![Page 6: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/6.jpg)
10.1. Creación de usuarios
• Ejemplo 3: el usuario dani puede acceder a través de un dominio:CREATE USER dani@‘%.midominio.com’
IDENTIFIED BY ‘abcdef’;
• Hay que tener en cuenta que hemos creado tres usuarios con el nombre ‘dani’, pero que son usuarios diferentes.
6
![Page 7: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/7.jpg)
10.2. Consultar usuarios creados
• Los usuarios de MySQL se almacenan en la tabla mysql.user. Podemos consultar la información de esta tabla con la sentencia SELECT:
SELECT * FROM mysql.user;
7
![Page 8: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/8.jpg)
10.3. Borrar usuarios
• Los usuarios de MySQL se borran con la sentencia DROP USER. Podemos borrar varios usuarios indicando sus nombres, separados por comas:• Ejemplo:
DROP USER usuario1, usuario2…
8
![Page 9: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/9.jpg)
10.4. Cambiar nombre a un usuario
• Para cambiar el nombre de un usuario podemos usar la sentencia RENAME:
RENAME USER nombre_viejo TO nombre_nuevo [, nombre_viejo2 TO nombre_nuevo2…]• Ejemplo:
RENAME USER pepe TO pepito;
9
![Page 10: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/10.jpg)
10.5. Cambiar password
• Podemos cambiar el password de usuarios existentes mediante la sintaxis:SET PASSWORD
FOR usuario = PASSWORD(‘nuevo_password’);
• También podemos usar la sentencia:SET PASSWORD
FOR usuario@host = PASSWORD(‘nuevo_pass’);
10
![Page 11: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/11.jpg)
10.6. Otorgar permisos
• Los permisos en MySQL tienen en cuenta tres aspectos:–Permiso: el tipo de operación que se le
dejará hacer al usuario.–Base de datos: la base de datos o tablas
sobre las cuáles se aplicarán dichos permisos.–Usuario: el o los usuarios a los cuáles se les
otorgará dichos permisos.11
![Page 12: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/12.jpg)
10.6. Otorgar permisos
• La sentencia para dar permisos es:
GRANT privilegios
ON database
TO usuario
[WITH option];
12
![Page 13: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/13.jpg)
10.6. Otorgar permisos
• Privilegios que tenemos en MySQL:• ALL: activa todos los privilegios (excepto el de dar
privilegios a otros usuarios).• ALTER, CREATE, CREATE ROUTINE, CREATE
TEMPORARY TABLES, CREATE VIEW, DROP.• INSERT, SELECT, UPDATE, DELETE.• EXECUTE, PROCESS, REFERENCES, RELOAD,
REPLICATION CLIENT, REPLICATION SLAVE• FILE, INDEX, LOCK TABLES, SHOW DATABASES,
SHOW VIEW, SHUTDOWN, SUPER, USAGE13
![Page 14: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/14.jpg)
10.6. Otorgar permisos
• La cláusula WITH option es opcional. Podemos especificar las siguientes opciones:• GRANT OPTION• MAX_QUERIES_PER_HOUR num• MAX_CONNECTIONS_PER_HOUR num• MAX_USER_CONNECTIONS num
• La opción GRANT OPTION sirve para dar a un usuario el privilegio para conceder permisos a otros. Hay que destacar que el usuario sólo puede otorgar aquellos permisos que él tenga.
14
![Page 15: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/15.jpg)
10.6. Otorgar permisos
• Ejemplo: el usuario podrá visualizar los datos de la tabla película de la base de datos Videoclub:
GRANT SELECT
ON Videoclub.pelicula
TO fulanito;• Si ‘fulanito’ ejecutara la sentencia SHOW TABLES
FROM Videoclub, sólo vería la tabla película. Si la base de datos tuviera más tablas, éstas no se visualizarían.
15
![Page 16: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/16.jpg)
10.6. Otorgar permisos
• Ejemplo 1: dar varios permisos:GRANT SELECT, INSERT, UPDATE, DELETE
• Ejemplo 2: dar todos los permisos:GRANT ALL
• Ejemplo 3: dar permisos sobre varias tablas:ON database.tabla1, database.tabla2, database2.tabla3
• Ejemplo 4: dar permisos sobre todas las tablas:ON database.*
•Ejemplo 5: dar permisos a varios usuarios:TO user1, user2, user3
16
![Page 17: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/17.jpg)
10.6. Otorgar permisos
• Ejemplo 6: permisos sobre algunas columnas:GRANT UPDATE(poblacion), SELECT(nombre, poblacion)
• Ejemplo 7: permisos con opciones:GRANT SELECT ON mundo.* TO fulanito WITH MAX_CONNECTIONS_PER_HOUR 3 MAX_QUERIES_PER_HOUR 300
MAX_UPDATES_PER_HOUR 30;
17
![Page 18: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/18.jpg)
10.7. Ver permisos
• Para ver los permisos que tiene un usuario, usamos la sentencia:
SHOW GRANTS FOR usuario
18
![Page 19: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/19.jpg)
10.8. Quitar permisos
• La sentencia para quitar permisos es:
REVOKE permisos
ON database
FROM usuario;
19
![Page 20: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/20.jpg)
10.8. Quitar permisos
• Ejemplo 1: quitamos el permiso de selección otorgado al usuario fulanito:
REVOKE SELECT
ON Videoclub.pelicula
FROM fulanito;• Ejemplo 2: quitamos todos los permisos a un usuario:
REVOKE ALL PRIVILEGES
ON Videoclub.pelicula
FROM fulanito;• Ejemplo 3: quitamos todos los privilegios y la opción de dar privilegios a
otros usuarios:
REVOKE ALL PRIVILEGES, GRANT OPTION
ON Videoclub.pelicula
FROM fulanito20
![Page 21: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/21.jpg)
10.9. Niveles de los permisos
• Los permisos podemos darlos en los siguientes niveles:• Nivel global.• Nivel de base de datos.• Nivel de tabla• Nivel de columna.• Nivel de rutina.
21
![Page 22: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/22.jpg)
10.9. Niveles de los permisos
• Nivel global: estos permisos se aplican a todas las bases de datos del servidor.• Se almacenan en la tabla mysql.user.• GRANT ALL ON *.* y REVOKE ALL ON
*.* dan y quitan permisos globales.
22
![Page 23: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/23.jpg)
10.9. Niveles de los permisos
• Nivel de base de datos: estos permisos se aplican a todos los objetos de la base de datos indicada.• Se almacenan en las tablas mysql.db y
mysql.host.• GRANT ALL ON base_datos.* y REVOKE
ALL ON base_datos.* dan y quitan permisos de bases de datos.
23
![Page 24: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/24.jpg)
10.9. Niveles de los permisos
• Nivel de tabla: estos permisos se aplican a todas las columnas en la tabla indicada.• Se almacenan en la tabla
mysql.tables_priv.• GRANT ALL ON base_datos.tbl_name y
REVOKE ALL ON base_datos.tbl_name dan y quitan permisos de bases de datos.
24
![Page 25: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/25.jpg)
10.9. Niveles de los permisos
• Nivel de columna: estos permisos se aplican a columnas en la tabla indicada.• Se almacenan en la tabla
mysql.columns_priv.
25
![Page 26: T10 - Gestion de usuarios](https://reader034.vdocumento.com/reader034/viewer/2022052602/559c1aa51a28ab27598b47e1/html5/thumbnails/26.jpg)
10.9. Niveles de los permisos
• Nivel de rutina: estos permisos se aplican a funciones almacenadas. Son los permisos CREATE ROUTINE, ALTER ROUTINE, EXECUTE.• Pueden darse a nivel global o de base de
datos, y también a nivel de rutina para rutinas individuales, excepto CREATE ROUTINE.• Se almacenan en la tabla mysql_procs_priv.
26