Mysql crear usuario y permisos con grant

Para crear el usuario lo haremos desde consola. El comando grant de mysql es para asignar permisos y crear usuario en el mismo comando. La manera es la siguiente:

GRANT tipo de permiso ON base de datos TO aquien@equipo IDENTIFIED BY contraseña WITH GRAN OPTION es que pueda dar permisos ese usuario

Los tipo de permiso que acepta grant se pueden ver acá, solo voy a especificar dos: ALL PRIVILEGES , que evidentemente es que el usuario tenga todos los privilegios o SELECT que es que el usuario solo pueda hacer consultas a la base de datos sin modificarla.

El caso a resolver será el siguiente:

  • Crear una nueva base de datos
  • Crear un usuario administrador para esa base de datos que solo se pueda conectar localmente
  • Crear un usuario de consulta para la base de datos que se pueda conectar remotamente

Para ello nos conectamos a la base de datos como root mysql -h direccion_equipo -u mi_usuario -p, y hacemos lo siguiente

  • creamos una base de datos con:
  • CREATE DATABASE test1
  • creamos un usuario administrador para esa base de datos con:
  • GRANT ALL PRIVILEGES ON test1.* TO ‘roottest1’@’localhost’ IDENTIFIED BY ‘contrasenia’ WITH GRANT OPTION;
  • Creamos un nuevo usuario, para que remotamente (%) tenga acceso de lectura (SELECT) a todos los objetos de la tabla creada con:
  • GRANT SELECT ON test1.* TO ‘readertest1’@’%’ IDENTIFIED BY ‘contrasenia’ WITH GRANT OPTION;
  • Si en caso de que el usuario remoto necesitamos que sea administrador tecleamos GRANT ALL PRIVILEGES ON test1.* TO ‘roottest1’@’%’ IDENTIFIED BY ‘contrasenia’ WITH GRANT OPTION, es decir como el primer comando la diferencia es que en vez de poner el host metemos %
  • Finalmente, actualizamos los permisos con FLUSH PRIVILEGES

Algunos comandos útiles

Listar todos los usuarios con las bases de datos a las que tienen permiso

select u.User, u.Host, d.Db 
 from mysql.user u
 left join mysql.db d on u.User = d.User;

Muestra los permisos para un usuario:

show grants for user@localhost

Borrar un usuario

drop user nombre_usuario@cliente

Crear nuevo usuario

mysql> create user nombre@dominio_acceso identified by 'contraseña'

Modificar nombre usuario

mysql> rename nombre_viejo to nombre_nuevo

Modificar contraseña

mysql> set password for nombre_usuario=password('nueva_contraseña')
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s