Your SlideShare is downloading. ×
Ejercicio privilegios
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Ejercicio privilegios

3,190
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,190
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
106
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. Bases de Datos Sección 403.Práctica Creación de usuarios y privilegiosConéctate a Mysql Server utilizando el usuario rootVerifica que ha iniciado con el usuario root con el comando select user();Ahora digitashow databases, para que ver a cuantas bases de datos tiene acceso el usuario rootCreación de usuariosLa sintaxis para la creación de usuarios es la siguiente.CREATE USER nombre_usuario@servidor IDENTIFIED BY clave_usuario;Donde: Nombre_usuario : Será el nombre de usuario el cual elijamos para el fin que deseemos.Servidor: Para el caso de nuestras pruebas locales elegiremos localhost, a menos que se tenga unservidor remoto con un nombre en específico Identified by : Es la clave que identifica al usuariocreado. La cual es encriptada por el sistema. Ejemplo: Crear un usuario llamado ´gerente´utilizando la clave „123456‟ CREATE USER gerente@localhost IDENTIFIED BY 123456; Paraverificar los permisos de usuario y mostrar el password encriptado utilizamos la siguientesentencia: SHOW GRANTS FOR ‘gerente’@’localhost’Ahora salir del usuario root con la sentencia exit; y volver al promt del sistema 1
  • 2. Ahora ingresar con el usuario gerente que acabamos de crear con la siguiente sentencia: mysql –ugerente –pVerifica que has iniciado sesión con el usuario gerente con la sentencia select user();Verifica a cuantas bases de datos tiene acceso ese usuario con show databases;Como puede ver este usuario no posee ningún permiso sobre las bases de datos creadasen mysql.CREACION DE USUARIOS PARA ACCESO REMOTOAl crear un usuario, se define el contexto desde el que se puede conectar, por ejemplocarlos@localhost solamente se puede conectar desde el mismo servidor de la base dedatos, para crear usuarios que se puedan conectar desde varias máquinas, se puedecrear un usuario por cada máquina o usar el comodín %, el usuario carlos@% sepodría conectar desde cualquier máquina, y el usuario gerentelan@10.0.25.% se podríaconectar desde máquinas con una dirección IP comprendida entre 10.0.25.1 y10.0.25.255. Ejemplo:El usuario puede acceder desde cualquier maquina comprendida entre 10.0.25.1 y10.0.25.255 CREATE USER gerentelan@10.0.25.% IDENTIFIED BY 123456;Para poder acceder con usuarios remoto se utiliza la siguiente sentenciamysql –ugerentelan –h10.0.25.5 –pEn la sintaxis vemos un nuevo parámetro –h, el cual indica el servidor al cual se desea conectar,para acceso local se utiliza –hlocalhost aunque se puede obviar. En el ejemplo se intenta acceder ala maquina con ip 10.0.25.5Otorgar Permisos Sobre Bases de DatosUSE Clientes;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON Clientes TOgerente@localhost;Con el ejemplo anterior primero se ha seleccionado la base de datos llamada Clientes,luego con la palabra GRANT estamos otorgando permisos, seguido de ellos describimoslos modificadores que podrá tener sobre la base de datos, si queremos concederle todoslos permisos entonces en lugar de listarlos simplemente lo sustituimos por la palabra ALL,tal como se muestra a continuación. 2
  • 3. USE Clientes GRANT ALL ON Clientes TO gerente@localhost;Con esta última opción se está asignando al usuario los permisos listados sobre todas lastablas que contenga la base de datos, pero esto en alguna ocasiones no puede ser muyrecomendable ya que no siempre se desea crear usuarios que posean total control sobrela base de datos Ahora salir y volver a conectarse al monitor de mysql nuevamente yverifica si tienes acceso a la base de datos y a las tablas Todos los permisos se puedenotorgar y quitar con el usuario root, por lo que a partir de esta parte en todas lassentencias para otorgar y quitar privilegios, se deberá cambiar a root para manejar lospermisos y a gerente para verificar los cambios.Remover permisos sobre bases de datosLa sentencia REVOKE sirve para quitar o remover los permisos otorgados medianteGRANT. Si los permisos creados fueron de modo global sin especificar tablas en elsistema deberá de usarse la siguiente sintaxis para quitar los permisos.Use Clientes;REVOKE SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON Clientes FROMgerente@localhost ;Si en la definición de los permisos se utilizó * entonces se debe remover los permisos delmismo modo indicando que será en todas las tablas de la base de datos en cuestión.Use Clientes;REVOKE SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON Cliente.* FROMgerente@localhost ;Nuevamente el usuario no tendrá permisos sobre el objeto anterior.Otorgar permisos sobre tablas especificas de una base de datos Para limitar oadministrar el acceso de los usuarios a ciertas tablas podemos utilizar siempre lainstrucción GRANT pero en la definición del objeto sobre el cual delimitaremos lospermisos especificamos las tablas en cuestión. Tal y como se muestra a continuación.USE Clientes;GRANT SELECT, INSERT, UPDATE, DELETE ON Clientes.personas TOgerente@localhost;Del mismo modo para poder agregar más, los mismos permisos en más de una tabla ydelimitar consultas máximas por hora, conexiones máximas por hora y otros delimitadoresse puede basar en el siguiente código:GRANT SELECT,INSERT,UPDATE,DELETE ON Clientes.personas TOgerente@localhost IDENTIFIED BY 123456 WITH MAX_QUERIES_PER_HOUR 20MAX_UPDATES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 5MAX_USER_CONNECTIONS 20;Con la definición anterior se estableció un máximo de consultas de 20 consultas por hora,además máximo de 10 update por hora, máximo de 5 conexiones al servidor en menos de 3
  • 4. una hora, y máximo de conexiones de usuario de 20. Con esto podemos delimitar mas elacceso del usuario a la BD y en este caso a la tabla en especifico, el condicionanteIDENTIFIED BY puede ser incluido en las otorgaciones anteriores aunque no esnecesario.Remover permisos sobre tablas específicas de una base de datos Para eliminarlos permisos otorgados anteriormente se utilizará una sintaxis similar.REVOKE SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON Clientes.personasFROM gerente@localhost IDENTIFIED BY 123456 ;Cabe recordar que no es necesario especificar el password mediante IDENTIFIED BY,esto es indiferente el agregarlo o no. El comando de igual forma funcionará. Revisar ahoralos resultados actualizados.Remover Todos los permisos de forma general.Para eliminar privilegios de modo global se puede utilizar la siguiente sintaxisREVOKE ALL PRIVILEGES, GRANT OPTION FROM gerente@localhost;Renombrar usuarios. Para renombrar un usuario se utiliza la sintaxis siguienteRENAME USER usuario_anterior@nombre_servidor TOusuario_nuevo@nombre_servidorPara realizar un ejemplo práctico renombrar el usuario llamado gerente identificándolocomo gerente_generalRENAME USER gerente@localhost TO gerente_general@localhostModificar Contraseñas de usuarios. Dentro de un sistema de seguridad nodebe de faltar el poder cambiar la contraseña de los usuarios de forma periódica, esto lopones en práctica en tu correo electrónico y en otras contraseñas para diferentes fines.Por lo tanto es indispensable en cada inicio de sesión ya que se puede poner en riesgo laseguridad del sistema y por lo tanto la seguridad laboral dentro de una empresa. Paramodificar la contraseña o clave de un usuario se utiliza la siguiente sintaxis:SET PASSWORD FOR gerente_general@localhost = PASSWORD(654321);En donde se especifica el usuario a modificar luego con la palabra PASSWORD se debeasegurar que el password a introducir sea cifrado en pase a la función PASSWORD queviene integrada en MySQL Server.Eliminar Usuarios del sistema. Para eliminar usuarios del sistema basta con especificarDROP USER seguido del usuario a eliminar.DROP USER gerente_general@localhostEjercicio: 4
  • 5. Crear los usuarios con los siguientes permisos1. Usuario: user1Permisos: Permite crear tablas en la base de datos Cliente (la cual debes crear, con latabla personas cuyos campos serán idpersona, nombre y domicilio y la tabla ciudades conlos campos id_ciudad, nombre, capital), permite solo realizar consultar a la tabla personas2. Usuario: user2Permisos: Permite borrar tablas en la base de datos Clientes, permite solo realizaractualizaciones a la tabla ciudades e insertar datos en la tabla ciudades3. Usuario: user3Permisos: tiene todos los privilegios sobre la tabla ciudades de la BD clientes4. Pregunta a tu compañero la ip de su computadora y créale un usuario que tengapermisos para consultar, eliminar, insertar y modificar datos en la tabla personas de labase de datos clientes para que pruebe el usuario por acceso remotoInvestigar ¿Qué es un trigger? Ventajas y desventajas Sintaxis Presentar un ejemplo con la base de datos Clientes en MysqlDefinir los id de las tablas de tipo numérico y los demás campos de tipo varchar, lalongitud la eliges tú. 5