Sei sulla pagina 1di 3

USUARIOS PRIVILEGIOS Y ROLES en MySQL Hemos usado el usuario root, que es el administrador, y que dispone de todos los privilegios

s de MySQL. Para conservar la integridad de los datos y de las estructuras ser conveniente que slo algunos usuarios puedan realizar determinadas tareas, y que otras, que requieren mayor conocimiento sobre las estructuras de bases de datos y tablas, slo puedan realizarse por un nmero 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 ms alto de privilegio, su mbito es el ms general. De base de datos: se refieren a bases de datos individuales, y por extensin, 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. An 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 mtodo mas usado es con el comando GRANT , ya que es ms conciso y menos propenso a errores. Otra opcin 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 conexin al servidor como root, puede aadir 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; IDENTIFIED BY 'some_pass' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'

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 slo 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>

Potrebbero piacerti anche