Cómo crear cuentas de usuario MySQL y otorgar privilegios en Linux

27 feb 2021 3 min di lettura
Cómo crear cuentas de usuario MySQL y otorgar privilegios en Linux
Indice dei contenuti

Introducción

MySQL es el sistema de administración de bases de datos relacionales de código abierto más popular. El servidor MySQL nos permite crear numerosas cuentas de usuario y otorgar los privilegios adecuados para que los usuarios puedan acceder y administrar bases de datos.

Este tutorial describe cómo crear cuentas de usuario de MySQL y otorgar privilegios.

Antes de empezar

Suponemos que un servidor MySQL o MariaDB ya está instalado en su sistema.

Todos los comandos se ejecutan dentro del shell de MySQL como usuario administrador o root. Los privilegios mínimos requeridos para crear cuentas de usuario y definir sus privilegios son CREATE USER y GRANT.

Para acceder al shell de MySQL, escriba el siguiente comando e ingrese la contraseña del usuario raíz de MySQL cuando se le solicite:

mysql -u root -p

Si no ha establecido una contraseña para su usuario root de MySQL, puede omitir la -p.

Cree una nueva cuenta de usuario de MySQL

Una cuenta de usuario en MySQL consta de un nombre de usuario y partes del nombre de host.

Para crear una nueva cuenta de usuario de MySQL, ejecute el siguiente comando:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';

Reemplace el valor de newuser con el nuevo nombre de usuario deseado y el valor de user_password con la contraseña del usuario.

En el comando anterior, la parte del nombre de host se establece en localhost, lo que significa que el usuario solo podrá conectarse al servidor MySQL desde el host local (es decir, desde el sistema donde se está ejecutando MySQL Server).

Para otorgar acceso desde otro host, cambie la parte del nombre de host ( localhost ) a la IP de la máquina remota. Por ejemplo, para otorgar acceso desde una máquina con IP 10.8.0.5 debe ejecutar:

CREATE USER 'newuser'@'10.8.0.5' IDENTIFIED BY 'user_password';

Para crear un usuario que pueda conectarse desde cualquier host, utilice el carácter comodín '%' como parte del host:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';

Otorgar privilegios a una cuenta de usuario de MySQL

Hay varios tipos de privilegios que se pueden otorgar a una cuenta de usuario. Puede encontrar una lista completa de los privilegios compatibles con MySQL aquí.

Los privilegios más utilizados son:

  • ALL PRIVILEGES: otorga todos los privilegios a una cuenta de usuario.
  • CREATE: la cuenta de usuario está autorizada para crear bases de datos y tablas.
  • DROP: la cuenta de usuario está autorizada a eliminar bases de datos y tablas.
  • DELETE: la cuenta de usuario está autorizada a eliminar filas de una tabla específica.
  • INSERT: la cuenta de usuario puede insertar filas en una tabla específica.
  • SELECT: la cuenta de usuario está autorizada para leer una base de datos.
  • UPDATE: la cuenta de usuario está autorizada a actualizar las filas de la tabla.

Para otorgar privilegios específicos a una cuenta de usuario, puede utilizar la siguiente sintaxis:

GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';

Ejemplos

Otorgue todos los privilegios de una cuenta de usuario en una base de datos específica:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Otorgue todos los privilegios de una cuenta de usuario en todas las bases de datos:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Otorgue todos los privilegios de una cuenta de usuario a una tabla específica de una base de datos:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

Otorgue múltiples privilegios a una cuenta de usuario en una base de datos específica:

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Ver los privilegios de la cuenta de usuario de MySQL

Para encontrar los privilegios otorgados a una cuenta de usuario de MySQL específica, use la declaración SHOW GRANTS

SHOW GRANTS FOR 'database_user'@'localhost';
+---------------------------------------------------------------------------+
 | Grants for database_user@localhost |
 +---------------------------------------------------------------------------+
 | GRANT USAGE ON *.* TO 'database_user'@'localhost' |
 | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' |
 +---------------------------------------------------------------------------+
 2 rows in set (0.00 sec)

Revocar privilegios de una cuenta de usuario de MySQL

La sintaxis para revocar uno o más privilegios de una cuenta de usuario es casi idéntica a la de otorgar privilegios.

Por ejemplo, para revocar todos los privilegios de una cuenta de usuario en una base de datos específica, use el siguiente comando:

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Eliminar una cuenta de usuario de MySQL existente

Para eliminar una cuenta de usuario de MySQL, use la declaración DROP USER

DROP USER 'user'@'localhost'

El comando anterior eliminará la cuenta de usuario y sus privilegios.

Conclusión

Este tutorial solo cubre los conceptos básicos, pero debería ser un buen comienzo para cualquiera que quiera aprender a crear nuevas cuentas de usuario de MySQL y otorgar privilegios.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.