Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Y despus:
En esta ventana puedo editar una determinada cuenta de usuario o bien aadir nuevos usuarios. Teniendo seleccionada Server Access Management, si elijo la nica cuenta de usuario que tengo actualmente root, veremos que nos aparece la siguiente pantalla:
La pestaa login me muestra nuestro login name y me da la oportunidad de modificar la contrasea. La pestaa Administrative Roles me muestra los privilegios que tiene asignados esta cuenta de usuario y me da la oportunidad de modificarlos.
La pestaa Account Limits nos permitir establecer el mximo nmero de consultas, actualizaciones, conexiones y conexiones simultneas que se permitirn.
Vamos a crear un nuevo usuario llamado usuario1. Para ello, pulsaremos Add Account en la esquina inferior izquierda. En la pestaa Login Name pondremos usuario1. En la pestaa Login, en el apartado llamado Limit Connectivity to Hosts Matching pondremos localhost. La contrasea ser la que t quieras. En la pestaa Administrative Roles vamos a marcar la casilla que pone DBManager. Vers que automticamente tambin se marca BackupAdmin. Pulsamos Apply. Puedo desmarcar todo lo de Administrative Roles y establecer los privilegios que me interesen para cada uno de los esquemas de los que disponga en Workbench. Ahora voy a seleccionar el usuario1 y pulso sobre la pestaa Schema Privileges.
En nuestro caso, seleccionamos localhost. En la parte de abajo, donde pone Schema, por defecto se hace referencia a cualquier esquema, pero podemos seleccionar cualquiera de los esquemas de los que disponemos para que los privilegios y permisos del usuario seleccionado slo hagan referencia al esquema o esquemas que indiquemos. Vamos a seleccionar, por ejemplo, el esquema llamado supermercado. Aparecer la siguiente pantalla:
Vamos a marcar las casillas INSERT y UPDATE de Object Rights. Lo confirmamos. Si ahora entrsemos mediante el usuario usuario1 dicho usuario slo tendra privilegios para realizar dichas operaciones sobre la base de datos supermercado. Adems slo aparecera dicho esquema. A la hora de crear usuarios y establecer privilegios usando comandos, usar los siguientes: Para crear cuentas de usuario que permitan a los usuarios acceder a ciertos objetos con un nivel determinado de privilegios hay que hacer uso del comando CREATE USER. La sintaxis ser la siguiente: CREATE USER nombre_usuario@localhost IDENTIFIED BY password Para eliminar cuentas de usuario se usa el comando siguiente: DROP USER nombre_usuario@localhost Se puede renombrar un usuario conservando todos sus privilegios, usando el comando RENAME USER y cambiar la password mediante el comando SET PASSWORD. La sintaxis ser la siguiente: RENAME USER nombre_usuario_antiguo@localhost TO nuevo_nombre_usuario@localhost; SET PASSWORD for nombre_usuario_antiguo@localhost = PASSWORD(nueva_contrasea); Un usuario puede obtener privilegios para manipular objetos de una base de datos con el comando GRANT . Tambin se le pueden denegar permisos con el comando REVOKE.
En MySQL se puede otorgar a un us uario permisos para hacer cualquier operacin a nivel de host, de base de datos, de tabla o de columna. As, es posible asignar, por ejemplo, permisos de SELECT sobre las columnas Nombre, Oficio y Salario de la tabla empleado del esquema empresa:
GRANT SELECT (Nombre, Oficio, Salario) ON empleado TO paco@localhost; Con la sentencia anterior, el usuario paco@localhost slo podr seleccionar las columnas Nombre, Oficio y Salario de la tabla empleado, sindole denegada una consulta del tipo SELECT * FROM empleado.
Tipo_privilegio es la clase de permiso que se puede otorgar. Tpicamente pueden ser SELECT, INSERT, UPDATE
Algunos ejemplos de consultas para asignacin de permisos en MySQL son los siguientes:
GRANT SELECT, INSERT on nba.* TO paco@localhost; Otorga permisos de SELECT e INSERT a todas las tablas de la nba.
GRANT ALL PRIVILEGES on empresa.empleado TO paco@localhost; Otorga todos los privilegios a la tabla empleado de empresa
GRANT SELECT on *.* to paco@localhost; Otorga permisos de SELECT a todas las tablas de todas las bases de datos.
GRANT SELECT, INSERT,UPDATE,DELETE on nba.jugadores to paco@localhost WITH MAX_QUERIES_PER_HOUR 10 Otorga permisos de SELECT, INSERT, UPDATE y DELETE con un lmite de 10 consultas a la hora en la tabla jugadores de la nba.
La sentencia REVOKE deniega permisos a un usuario sobre un objeto. La sintaxis es prcticamente igual que la de GRANT.
6. Crea un usuario llamado usuario3 y haz que pueda acceder a la tabla supermercado para hacer SELECT y a la tabla empresa para hacer INSERT. CREATE USER usuario3@localhost IDENTIFIED BY 'admin'; GRANT SELECT ON SUPERMERCADO.* TO usuario3@localhost; GRANT INSERT ON EMPRESA.* TO usuario3@localhost;
7. Entra como usuario3 8. Prueba a inserta un nuevo artculo en el supermercado cuyo codart sea 16, nomart sea Tablet, dpto. sea 2 y el preciounidad sea 250. use supermercado; INSERT INTO supermercado.articulos (codart,nomart,dpto,preciunidad) VALUES ("16","TABLET","2","250");
9. Muestra los vendedores cuya edad est entre 20 y 30. use supermercado; SELECT * FROM VENDEDORES WHERE EDAD LIKE 20 OR EDAD LIKE 30;
10. Dentro del esquema empresa, muestra los nombres de todos los empleados use empresa; select nombre from empleado;
11. Quiero aadir un nuevo departamento en la tabla departamentos del esquema empresa. Los nuevos valores sern 50, Marketing, Valencia. INSERT INTO empresa.departamento (deptnum,nombredept,localidad) VALUES ("50","Marketing","Valencia");
12. Muestra la tabla departamentos para ver si se ha aadido el nuevo. Has podido verlo? Cambia al usuario root y comprueba que esa insercin se ha realizado.
13.Desde el us uario3, intenta borrar el departamento aadido. Te ha dejado? No porque no tiene permisos de borrado 14.Borra el departamento que aadiste desde el usuario root. DELETE FROM EMPRESA.DEPARTAMENTO WHERE DEPARTAMENTO.DEPTNUM=50; BORRADO AL TENER PRIVILEGIOS