T10 - Gestion de usuarios

  • 224 views
Uploaded on

Gestión de usuarios y permisos en MySQL

Gestión de usuarios y permisos en MySQL

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
224
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Tema – 10 Gestión de usuarios
  • 2. Índice 1. 2. 3. 4. 5. 6. 7. 8. 9. Creación de usuarios Consultar usuarios creados Borrar usuarios Cambiar nombre a un usuario Cambiar password Otorgar permisos Ver permisos Quitar permisos Niveles de los permisos 2
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 10.6. Otorgar permisos • La sentencia para dar permisos es: GRANT privilegios ON database TO usuario [WITH option]; 12
  • 13. 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, USAGE 13
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 10.7. Ver permisos • Para ver los permisos que tiene un usuario, usamos la sentencia: SHOW GRANTS FOR usuario 18
  • 19. 10.8. Quitar permisos • La sentencia para quitar permisos es: REVOKE permisos ON database FROM usuario; 19
  • 20. 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 fulanito 20
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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