USUARIOS PRIVILEGIOS Y ROLES en MySQL Hemos usado el usuario “ root”, que es el administrador, y que dispone de todos los privilegios de MySQL. Para conservar la integridad de los datos y de las estructuras será conveniente que sólo algunos usuarios puedan realizar determinadas tareas, y que otras, que requieren mayor conocimiento sobre las estructuras de bases de datos y tablas, sólo puedan realizarse por un número limitado y controlado de usuarios. No se pueden crear usuarios sin asignar al mismo tiempo privilegios, el crear un usuario se realiza principalmente por la necesidad de limitar las acciones que los usuarios pueden llevar a cabo. En MySQL podemos definir diferentes tipos de usuarios y asignar determinados privilegios. Niveles de privilegios: Globales: se aplican al conjunto de todas las bases de datos en un servidor. Es el nivel más alto de privilegio, su ámbito es el más general. De base de datos: se refieren a bases de datos individuales, y por extensión, a todos los objetos que contiene cada base de datos. De tabla: se aplican a tablas individuales, y por lo tanto, a todas las columnas de esas tabla. De columna: Es opcional y puede ser utilizado para especificar privilegios a cada columna. Si los separamos por comas podemos poner una serie de lista de nombres de columnas. (se aplican a una columna en una tabla concreta). De rutina: se aplican a los procedimientos almacenados. Aún no hemos visto nada sobre este tema, pero en MySQL se pueden almacenar procedimietos consistentes en varias consultas SQL. Los privilegios se almacenan en cuatro tablas del sistema, dentro de la base de datos MySQL. Estas cuatro tablas se denominan: mysql.user, mysql.db, mysql.table_priv, ymysql.colms_priv
Crear un usuario: Hay 2 formas de crear un usuario: -Usando el comando GRANT -Usando el comando CREATE USER -Manipulando las tablas de permisos de MySQL directamente. El método mas usado es con el comando GRANT , ya que es más conciso y menos propenso a errores. Otra opción para crear cuentas es usar uno de los diversos programas proporcionados por terceras partes que ofrecen capacidades para administradores de MySQL. phpMyAdmin es una de ellos. Crear un usuario desde la cuenta root: Tras la conexión al servidor como root, puede añadir nuevas cuentas. El siguiente comando usa GRANT para inicializar nuevas cuentas: mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' ->
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' ->
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
Las cuentas creadas con estos comandos GRANT tienen las siguientes propiedades: Ambas cuentas son cuentas de superusuario con plenos permisos para hacer cualquier cosa. La cuenta ('monty'@'localhost') puede usarse sólo cuando se conecte desde el equipo local. La otra cuenta ('monty'@'%') puede usarse para conectarse desde cualquier otro equipo. Borrar un usuario: Para eliminar un usuario se usa la sentencia DROP USER Para eliminar un usuario, este no debe tener privilegios, no podemos eliminar un usuario que tenga sus privilegios, ejemplo: mysql> DROP USER anonimo; ERROR 1268 (HY000): Can't drop one or more of the requested users mysql>
Por eso lo primero que tenemos que hacer es revocar sus privilegios: mysql> REVOKE SELECT ON prueba.gente FROM anonimo; Query OK, 0 rows affected (0.00 sec) mysql> DROP USER anonimo; Query OK, 0 rows affected (0.00 sec) mysql>
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.