T10 - Gestion de usuarios
Upcoming SlideShare
Loading in...5
×
 

T10 - Gestion de usuarios

on

  • 338 views

Gestión de usuarios y permisos en MySQL

Gestión de usuarios y permisos en MySQL

Statistics

Views

Total Views
338
Views on SlideShare
319
Embed Views
19

Actions

Likes
0
Downloads
5
Comments
0

2 Embeds 19

http://danisantiago.com 16
http://www.slideee.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

T10 - Gestion de usuarios T10 - Gestion de usuarios Presentation Transcript

  • Tema – 10 Gestión de usuarios
  • Í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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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.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
  • 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
  • 10.6. Otorgar permisos • La sentencia para dar permisos es: GRANT privilegios ON database TO usuario [WITH option]; 12
  • 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
  • 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
  • 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
  • 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
  • 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
  • 10.7. Ver permisos • Para ver los permisos que tiene un usuario, usamos la sentencia: SHOW GRANTS FOR usuario 18
  • 10.8. Quitar permisos • La sentencia para quitar permisos es: REVOKE permisos ON database FROM usuario; 19
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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