jueves, 3 de abril de 2014

Crear y borrar usuarios de MySQL por consola

Existen 4 formas diferentes de crear y/o modificar usuarios en MySQL:
  1. La sentencia GRANT
  2. La sentencia CREATE USER
  3. Insertando directamente en la tabla user
  4. Utilizando un administrador de MySQL como SQLyog
He aquí unas recomendaciones para crear usuarios, según la documentación oficial de MySQL:
  • Los nombres de usuario pueden tener un máximo de 16 caracteres.
  • Si se utiliza el modificar directamente la tabla user, tener cuidado de no modificar la estructura de ninguna tabla de la base mysql.

CREAR USUARIOS:

Aquí veremos como crear usuarios con la primer opción: grant
La sentencia grant nos permite crear cuentas de usuarios para MySQL y darles permiso, esta información es almacenada en las tablas de la base mysql. Primero tenemos que ingresar a nuestro servidor de base de datos como root o con una cuenta con nivel de root.

$ mysql -u root -p

Con grant se pueden asignar permisos a diferentes niveles, he aquí algunos ejemplos:

Nivel Global
En este ejemplo se crea un usuario llamado usuario con la contraseña miclave que tiene permisos sobre todas las bases de datos de nuestro servidor
mysql> GRANT ALL ON *.* TO 'usuario'@'localhost' IDENTIFIED BY 'miclave';

Nivel de Base de datos
En este ejemplo se crea un usuario llamado usuario1 con la contraseña miclave que tiene permisos sobre todas las tablas de la base de datos mibase
mysql> GRANT ALL ON mibase.* TO 'usuario1'@'localhost' IDENTIFIED BY 'miclave';

Nivel de Tabla
En este ejemplo se crea un usuario llamado usuario2 con la contraseña miclave que tiene permisos sobre la tabla mitabla de la base de datos mibase
mysql> GRANT ALL ON mibase.mitabla TO 'usuario2'@'localhost' IDENTIFIED BY 'miclave';

Con grant podemos también indicar que tipo de permisos un usuario tendrá sobre un objeto, en el siguiente ejemplo creamos un usuario que tiene permisos de seleccionar e insertar en la tabla tabla1 de la base de datos mibase2:
mysql> GRANT SELECT, INSERT ON mibase2.mitabla1 TO 'miusuario'@'localhost' IDENTIFIED BY 'miclave';
Nota:
Después del @ nosotros indicamos el contexto del usuario, en los ejemplos anteriores todos los usuarios podrán conectarse solo por la maquina local (localhost), es decir, que se impedirá conectarse de forma remota. Si queremos que se conecte el usuario desde cualquier equipo tendra que agregar el caracter %.
mysql> GRANT ALL ON mibase.* TO 'usuario'@'%' IDENTIFIED BY 'miclave';
ELIMINAR USUARIOS

Para eliminar usuarios utiliza el comando DROP USER, para utilizar este comando debe tener el permiso global de CREATE USER o el permiso DELETE para la base de datos mysql. Para borrar una cuenta y sus permisos la sintaxis es la siguiente:

mysql> DROP USER miusuario;

Si tiene el mismo usuario en diferentes ámbitos, solo necesitara especificar el usuario deseado en el ámbito correcto:

mysql> DROP USER miusuario@localhost;

NOTA:
En MySQL 5.0.0 DROP USER solo borra cuentas que no tienen permisos, para eliminar completamente la cuenta incluyendo sus permisos en estas versiones, tendrá que usar SHOW GRANTS para ver que permisos tiene ese usuario y con REVOKE tendrá que revocar sus permisos. A partir de MYSQL 5.0.2 ya se pueden eliminar cuentas que tienen permisos.

PERMISOS

PermisoSignificado
ALLDa todos los permisos simples, excepto GRANT OPTION
ALTERPermite el uso de ALTER TABLE
CREATEPermite el uso de CREATE TABLE
CREATE USERPermite el uso de CREATE USER, DROP USER, RENAME USER y REVOKE ALL PRIVILEGES
CREATE VIEWPermite el uso de CREATE VIEW
DELETEPermite el uso de DELETE
DROPPermite el uso de DROP TABLE
INSERTPermite el uso de INSERT
SELECTPermite el uso de SELECT
UPDATEPermite el uso de UPDATE
GRANT OPTIONPermite dar privilegios

1 comentario:

Anónimo dijo...

Útil y sencillo de entender.gracias

Entradas Populares