Ver y administrar usuarios en MariaDB | Permisos y FAQ

目次

1. Introducción

MariaDB es uno de los sistemas de gestión de bases de datos más utilizados actualmente, conocido por su facilidad de uso y alto rendimiento. Dentro de ello, la gestión de usuarios desempeña un papel muy importante. Al realizar una gestión adecuada de usuarios, es posible garantizar la seguridad de la base de datos y lograr una operación eficiente. En este artículo, nos centraremos en explicar el “método para verificar la lista de usuarios” en MariaDB. Específicamente, cubriremos cómo obtener la lista de usuarios mediante comandos SQL, las diferencias y ventajas de cada comando, y también explicaremos en detalle la configuración de permisos relacionada y los puntos a tener en cuenta. Este contenido está dirigido tanto a principiantes en MariaDB como a quienes ya están operando bases de datos, con el objetivo de ser útil. ¡Lea hasta el final!

2. Cómo verificar la lista de usuarios en MariaDB

Existen varios métodos para verificar la lista de usuarios en MariaDB. Cada método tiene sus características, y al utilizarlos según el caso se puede lograr una gestión de usuarios eficiente. A continuación, se explican en detalle tres métodos representativos。

2.1 Cómo usar la tabla mysql.user

El método más básico para comprobar la información de usuarios en MariaDB es consultar directamente la tabla mysql.user. Esta tabla almacena la información de todas las cuentas de usuario。

Ejemplo de comando

Ejecutando el siguiente SQL, se puede ver la lista de usuarios。
SELECT Host, User FROM mysql.user;

Explicación

  • Host: Representa el nombre del host al que el usuario puede conectarse.
  • User: Es el nombre de usuario registrado en MariaDB.

Escenarios de uso

  • Cuando se desea ver todos los usuarios en una lista.
  • Cuando se desea verificar los usuarios que pueden conectarse a un host específico.

Puntos a tener en cuenta

  • Para consultar la tabla mysql.user se requieren privilegios suficientes (normalmente los del usuario root).
  • En algunas versiones el uso de mysql.user no está recomendado, por lo que se debe consultar la documentación oficial.

2.2 Cómo usar el comando SHOW GRANTS

Al usar el comando SHOW GRANTS, se pueden verificar los privilegios otorgados a un usuario específico。

Ejemplo de comando

Especificando de la siguiente manera, se pueden mostrar los privilegios de un usuario concreto。
SHOW GRANTS FOR 'nombre_de_usuario'@'nombre_de_host';

Explicación

  • Permite revisar detalladamente los privilegios por usuario.
  • Ejemplo de salida:
  GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost';

Escenarios de uso

  • Cuando se desea confirmar que la configuración de privilegios de un usuario es correcta.
  • Para identificar configuraciones erróneas de privilegios cuando ocurre un problema.

Puntos a tener en cuenta

  • Si no se tienen los privilegios necesarios, no se podrá ejecutar este comando.

2.3 Cómo usar information_schema.USER_PRIVILEGES

MariaDB cuenta con una base de datos del sistema llamada information_schema, y al utilizar la tabla USER_PRIVILEGES dentro de ella, se pueden listar los datos de privilegios de todos los usuarios。

Ejemplo de comando

SELECT * FROM information_schema.USER_PRIVILEGES;

Explicación

  • Con este método se pueden verificar los privilegios globales de cada usuario.
  • La salida incluye la siguiente información:
  • GRANTEE: Nombre de usuario y host.
  • PRIVILEGE_TYPE: Tipo de privilegio otorgado.
  • IS_GRANTABLE: Indica si el privilegio es transferible.

Escenarios de uso

  • Cuando se desea revisar los privilegios de varios usuarios de forma conjunta.
  • Para examinar la configuración de privilegios globales.

Puntos a tener en cuenta

  • Algunos privilegios pueden no estar visibles en esta tabla.

Resumen

Al aprovechar adecuadamente estos métodos, se puede gestionar de forma eficaz la lista de usuarios y la información de privilegios en MariaDB. Cada método tiene sus ventajas, y es importante elegir según el objetivo de uso。

3. Gestión detallada de usuarios de MariaDB

En MariaDB, es posible verificar la información detallada de los usuarios y gestionar sus privilegios. En esta sección se explican en detalle las operaciones necesarias para la gestión de usuarios.

3.1 Verificación de la información del usuario

En MariaDB, se puede usar el comando SHOW CREATE USER para consultar la información detallada de un usuario específico. Este comando reproduce la información utilizada al crear el usuario.

Ejemplo de comando

Ejecutando el siguiente SQL se muestra el detalle del usuario especificado.
SHOW CREATE USER 'nombre_de_usuario'@'nombre_de_host';

Explicación

Este comando se utiliza para verificar método de autenticación del usuario y otras propiedades. Ejemplo de salida:
CREATE USER 'user1'@'localhost' IDENTIFIED VIA mysql_native_password USING '***';

Escenarios de uso

  • Cuando se desea confirmar el método de autenticación del usuario.
  • Al inspeccionar si hay problemas con los atributos del usuario.

Precauciones

  • Se requieren los permisos adecuados para ejecutar el comando (normalmente permisos de usuario root).

3.2 Configuración y modificación de privilegios de usuarios

En MariaDB, se pueden establecer privilegios de forma flexible para cada usuario. Para la configuración de privilegios se utilizan los comandos GRANT y REVOKE.

Conceder privilegios

Con el siguiente SQL se otorgan privilegios específicos al usuario indicado.
GRANT SELECT, INSERT ON database_name.* TO 'nombre_de_usuario'@'nombre_de_host';

Revocar privilegios

Para eliminar privilegios innecesarios, use el comando REVOKE.
REVOKE INSERT ON database_name.* FROM 'nombre_de_usuario'@'nombre_de_host';

Explicación

  • Con el comando GRANT se pueden conceder permisos de operación sobre bases de datos o tablas específicas.
  • Con el comando REVOKE se pueden revocar los permisos que ya no son necesarios.

Escenarios de uso

  • Al establecer privilegios específicos para un nuevo usuario.
  • Al eliminar privilegios innecesarios para reforzar la seguridad.

Precauciones

  • Los errores al configurar privilegios pueden aumentar el riesgo de seguridad, por lo que es necesario operar con cautela.

3.3 Método para eliminar usuarios

Eliminar usuarios innecesarios puede mejorar la seguridad de la base de datos. Se elimina un usuario con el comando DROP USER.

Ejemplo de comando

Con el siguiente SQL se elimina el usuario especificado.
DROP USER 'nombre_de_usuario'@'nombre_de_host';

Explicación

  • Al eliminar un usuario, también se eliminan simultáneamente todos los privilegios que le fueron concedidos.
  • No hay un ejemplo de salida; si tiene éxito, se muestra el mensaje «Query OK».

Escenarios de uso

  • Cuando se desea eliminar completamente un usuario que ya no es necesario de la base de datos.
  • Para organizar cuentas no utilizadas por motivos de seguridad.

Precauciones

  • Si el usuario a eliminar está en uso, pueden producirse errores inesperados.
  • La eliminación de usuarios es irreversible; verifique cuidadosamente antes de ejecutarla.

Resumen

La gestión de usuarios en MariaDB es una tarea esencial para mejorar la seguridad y la eficiencia operativa. Al realizar adecuadamente operaciones como la verificación de la información del usuario, la configuración y modificación de privilegios, y la eliminación de usuarios innecesarios, se logra una administración de bases de datos segura y eficiente.

4. Consideraciones en la gestión de usuarios de MariaDB

Para gestionar adecuadamente los usuarios de MariaDB, es necesario prestar atención a varios puntos importantes. En esta sección se explican las formas de abordar la falta de privilegios, consideraciones de seguridad y diferencias entre versiones.

4.1 Cómo abordar la falta de privilegios

En MariaDB, las operaciones para listar usuarios o verificar privilegios requieren permisos suficientes. Si la falta de privilegios causa que la operación falle, se pueden intentar las siguientes soluciones.

Ejemplo de error

Puede aparecer un error como el siguiente:
ERROR 1045 (28000): Access denied for user 'user1'@'localhost'

Métodos de solución

  1. Verificar que se ha iniciado sesión con el usuario correcto
  • Si faltan los privilegios necesarios (p.ej., privilegio SELECT), no se puede consultar la tabla mysql.user.
  • Como medida, inicie sesión como usuario root y pruebe la operación.
  1. Iniciar sesión como usuario root
  • Al iniciar sesión como root, la mayoría de las operaciones son posibles: bash mysql -u root -p
  1. Restablecer los privilegios
  • Conceder los privilegios necesarios: sql GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'host'; FLUSH PRIVILEGES;

Precauciones

  • Evite conceder más privilegios de los necesarios. Los privilegios excesivos representan un riesgo de seguridad.

4.2 Consideraciones de seguridad

En la gestión de usuarios de MariaDB, la seguridad es la máxima prioridad. A continuación se enumeran los puntos a tener en cuenta.

Eliminar usuarios innecesarios

  • Dejar cuentas de usuario sin usar puede convertirlas en objetivo de ataques.
  • Revise periódicamente los usuarios y elimine las cuentas innecesarias:
  DROP USER 'usuario'@'host';

Política de contraseñas robusta

  • Al crear usuarios, establezca contraseñas difíciles de adivinar:
  CREATE USER 'user1'@'localhost' IDENTIFIED BY 'StrongPassword123!';

Restricción de acceso externo

  • Para evitar conexiones externas innecesarias, limite los hosts que pueden conectarse:
  CREATE USER 'user1'@'192.168.0.1' IDENTIFIED BY 'password';

Monitoreo de logs

  • Monitoree periódicamente los logs de MariaDB (p.ej., general_log y error_log) para detectar accesos no autorizados.

4.3 Diferencias entre versiones

Dado que las especificaciones de MariaDB varían según la versión, es necesario adaptarse adecuadamente a la versión que se esté utilizando.

Desuso de la tabla mysql.user

  • En versiones más recientes, la referencia directa a la tabla mysql.user puede estar desaconsejada. En ese caso, utilice SHOW GRANTS o information_schema como alternativa.

Complementos de autenticación

  • En MariaDB, el complemento de autenticación predeterminado varía según la versión. En versiones antiguas, suele usarse mysql_native_password, mientras que en versiones más recientes se recomienda el más seguro caching_sha2_password.

Medidas

  • Verifique la versión de su MariaDB:
  SELECT VERSION();
  • Consulte la documentación oficial de la versión que está usando para confirmar las mejores prácticas actuales.

Resumen

Comprender los puntos críticos en la gestión de usuarios de MariaDB permite reforzar la seguridad y lograr una operación eficiente. Es importante prestar atención a la falta de privilegios y a las diferencias entre versiones, e incorporar las últimas medidas de seguridad.

5. FAQ (Preguntas frecuentes y sus respuestas)

Sobre la gestión de usuarios de MariaDB, hemos recopilado a continuación las preguntas frecuentes y sus respuestas. En esta sección se responden dudas comunes como la configuración de permisos, manejo de errores y problemas relacionados con el usuario root.

Q1: ¿Cómo otorgar permisos solo a un usuario específico?

Respuesta

Usando el comando GRANT se pueden conceder los permisos necesarios a un usuario específico. A continuación se muestra un ejemplo que otorga los permisos SELECT e INSERT en una base de datos específica:
GRANT SELECT, INSERT ON database_name.* TO 'usuario'@'host';
FLUSH PRIVILEGES;

Puntos clave

  • Al especificar database_name.*, el permiso se aplica a todas las tablas dentro de esa base de datos.
  • Ejecutar FLUSH PRIVILEGES; sin omitirlo activa los cambios.

Q2: ¿Cuáles son las causas y soluciones cuando la lista de usuarios no se muestra?

Respuesta

Si no se puede ver la lista de usuarios, pueden existir las siguientes causas.
  1. Falta de permisos
  • Si faltan los permisos necesarios (p.ej., permiso SELECT), no se puede consultar la tabla mysql.user.
  • Como solución, inicie sesión como usuario root y vuelva a intentar la operación.
  1. Uso del comando adecuado
  • En versiones recientes de MariaDB, mysql.user puede estar obsoleto. En ese caso, use el siguiente comando: SELECT User, Host FROM information_schema.USER_PRIVILEGES;
  1. Verificación de la versión de MariaDB
  • Dado que el método recomendado puede variar según la versión, primero verifique la versión actual: SELECT VERSION();

Q3: ¿Cómo proceder si el usuario root está bloqueado?

Respuesta

Si el usuario root está bloqueado y no puede iniciar sesión, siga los siguientes pasos.
  1. Iniciar MariaDB en modo seguro
  • Detenga el servidor y reinícielo en modo seguro: bash mysqld_safe --skip-grant-tables &
  1. Restablecer la contraseña de root
  • Mientras está en modo seguro, conéctese a MariaDB y restablezca la contraseña del usuario root con el siguiente comando: UPDATE mysql.user SET Password=PASSWORD('nueva_contraseña') WHERE User='root'; FLUSH PRIVILEGES;
  1. Salir del modo seguro y reiniciar en modo normal
  • Reinicie MariaDB para volver a la operación normal.

Precauciones

En modo seguro la autenticación se omite, por lo que debe asegurarse de que terceros no puedan acceder.

Q4: Se produjo un error al eliminar un usuario. ¿Qué hacer?

Respuesta

Las posibles causas de un error al eliminar un usuario son las siguientes.
  1. El usuario que se intenta eliminar está en uso
  • Si el usuario está conectado, la eliminación fallará.
  • Como solución, finalice forzadamente las conexiones del usuario: SHOW PROCESSLIST; KILL ID_de_conexión;
  1. Existencia de objetos dependientes
  • Si existen objetos asociados al usuario que se va a eliminar (p.ej., vistas o procedimientos almacenados), deben eliminarse primero.

Q5: ¿Cómo guardar la salida de SHOW GRANTS?

Respuesta

Al guardar la salida de SHOW GRANTS en un archivo, puede revisar la configuración de permisos más tarde.
  1. Método para guardar en archivo
  • Utilice el cliente mysql en la línea de comandos y redirija la salida: bash mysql -u root -p -e "SHOW GRANTS FOR 'usuario'@'host';" > grants_output.txt
  1. Guardar como sentencia SQL
  • Guarde el resultado en un archivo de texto para poder reutilizarlo posteriormente.

Resumen

En la sección de FAQ se abordaron las preguntas más frecuentes sobre la gestión de usuarios de MariaDB. Utilizando esta información podrá resolver problemas y mejorar la eficiencia operativa.

6. Resumen

La gestión de usuarios en MariaDB es un elemento indispensable para mejorar la seguridad y la eficiencia operativa. En este artículo, se explicó detalladamente, centrándose en cómo verificar la lista de usuarios, la configuración de permisos, los puntos a tener en cuenta, y las preguntas frecuentes junto con sus soluciones.

Puntos clave del artículo

  1. Método para verificar la lista de usuarios
  • Al utilizar la tabla mysql.user, SHOW GRANTS y information_schema.USER_PRIVILEGES, puede verificar la información de los usuarios de manera eficaz.
  1. Gestión detallada de usuarios
  • Aprendió a verificar la información de los usuarios con SHOW CREATE USER, a gestionar permisos con GRANT y REVOKE, y a eliminar usuarios innecesarios.
  1. Puntos a considerar y medidas de seguridad
  • Se cubrieron los fundamentos de seguridad, como soluciones para permisos insuficientes, configuración de contraseñas robustas y eliminación de usuarios innecesarios.
  • También es importante saber cómo adaptarse a las diferencias de especificaciones entre versiones.
  1. Preguntas frecuentes (FAQ)
  • Se presentaron medidas concretas para problemas comunes durante la operación, como la configuración de permisos, la gestión de errores y los pasos para recuperar el usuario root.

Próximos pasos

  • Utilice este artículo como referencia y verifique la lista de usuarios y los permisos en su entorno MariaDB.
  • Como medida de seguridad, se recomienda revisar periódicamente la gestión de usuarios y permisos.