Siguiendo con la explicación paso a paso de como instalar mariadb en Centos7 que publique hace unos días, continuamos con como crear un usuario y una base de datos, de paso nos vamos familiarizando con algunos comandos importantes.
Lo primero conectar con el motor de mariadb, lo haremos con un usuario con privilegios para crear otros usuario y bases de datos, suele ser el usuario root, tener en cuenta el tipo de comillas que vamos a usar dado que son distintas y es importante saber cual usar, podes copiar y pegar en tu escenario, también cabe mencionar que una vez dentro de la base de datos, al lanzar los comandos finalizan con un ;
mysql -u root -p
Y le damos la clave correspondiente.
Para crear el usuario:
CREATE USER 'nksistemas'@'localhost' IDENTIFIED VIA mysql_native_password;
Ahora le establecemos una password:
SET PASSWORD FOR 'nksistemas'@'localhost' = PASSWORD('nksistemas.com');
Creamos la base de datos:
CREATE DATABASE IF NOT EXISTS `nksistemas`;
Le damos todos los privilegios sobre esta base de datos al usuario recién creado:
GRANT ALL PRIVILEGES ON `nksistemas`.* TO 'nksistemas'@'localhost';
Pasos completos:
CREATE USER 'tu_usuario'@'localhost' IDENTIFIED VIA mysql_native_password;
SET PASSWORD FOR 'tu_usuario'@'localhost' = PASSWORD('TU_CLAVE');
CREATE DATABASE IF NOT EXISTS `TU_BASE`;
GRANT ALL PRIVILEGES ON `TU_BASE`.* TO 'tu_usuario'@'localhost';
Solo queda probar el nuevo usuario:
mysql -u nksistemas -p
Una vez dentro veamos las bases de datos que puede manejar nuestro usuario nksistemas:
show databases;
Tipos de privilegios
- ALL PRIVILEGES: permite que un usuario MySQL tengo acceso full a la base de datos (o si no se selecciona una base de datos en particular, el usuario tendría acceso a todo el sistema);
- CREATE: permite a los usuarios crear nuevas tablas o bases de datos;
- DROP: permite eliminar tablas o bases de datos;
- DELETE: permite eliminar filas de tablas;
- INSERT: permite insertar filas en tablas;
- SELECT: permite usar el comando
SELECTpara consultar información en bases de datos; - UPDATE: permite actualizar filas en tablas;
- GRANT OPTION: permite otorgar o suprimir privilegios de otros usuarios de la manera que vimos anteriormente, esto le daría a un usuario MySQL todo el acceso a una base de datos determinada (o si no se selecciona una base de datos en particular, a todo el sistema de base de datos).
Ejemplos
1- Crear un usuario de solo lectura o que solo pueda usar SELECT en una base de datos. Se le va a dar permisos al usuario_lectura sobre la base de datos DBPRUEBA y el .* es que a todas las tablas que tiene la base. Aclaro que voy a crear el usuario también, este ejemplo fue a pedido.
CREATE USER 'usuario_lectura'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT ON DBPRUEBA.* TO 'usuario_lectura'@'localhost'; FLUSH PRIVILEGES;
2- Quitar los privilegios
REVOKE SELECT ON DBPRUEBA.* FROM 'usuario_lectura'@'localhost';
3- Eliminar usuario
DROP USER 'usuario_lectura'@'localhost';
4- Crear un usuario remoto
Vamos a crear un usuario para que pueda conectarse desde cualquier equipo remoto.
CREATE USER 'usuario_remoto'@'0.0.0.0' IDENTIFIED BY 'password';
5- Actualizar un registro
Supongamos que tenemos que actualizar un dato en la tabla USER donde el ID del usuario es 2, le vamos a setear el password como PASSWORD1234
UPDATE `USER` SET passwd = 'PASSWORD1234' WHERE id = 2;







