Acceso a la Base de Datos para Consultas en Moodle

1. Método para resolverlo:

Para otorgar acceso a la base de datos de Moodle en modo solo consulta, sigue estos pasos:

  1. Obtener la IP de acceso:
    • Solicita al usuario la IP pública desde la cual realizará las consultas.
    • Asegúrate de que la IP esté autorizada en el firewall del servidor.
  2. Crear un usuario con permisos de solo lectura:
    • Accede al servidor MySQL/MariaDB con privilegios de administrador.
    • Ejecuta el siguiente comando para crear un usuario con acceso restringido:
      CREATE USER 'usuario_consulta'@'IP_DEL_USUARIO' IDENTIFIED BY 'contraseña_segura';
      GRANT SELECT ON moodle.* TO 'usuario_consulta'@'IP_DEL_USUARIO';
      FLUSH PRIVILEGES;
              
    • Reemplaza IP_DEL_USUARIO por la IP del cliente y moodle por el nombre real de la base de datos.
  3. Configurar acceso remoto:
    • En el archivo my.cnf o mysqld.cnf, busca la línea:
      bind-address = 127.0.0.1
    • Cámbiala por:
      bind-address = 0.0.0.0
    • Reinicia MySQL/MariaDB con:
      sudo systemctl restart mysql
  4. Verificar el acceso:
    • Desde el cliente, intenta conectarte con:
      mysql -h servidor_mysql -u usuario_consulta -p
    • Si la conexión falla, revisa reglas del firewall y permisos en MySQL.

2. Causas del problema:

  • La IP del usuario no está autorizada en el firewall o en MySQL.
  • El usuario de consulta no tiene los permisos correctos asignados.
  • El servidor MySQL solo permite conexiones locales (bind-address configurado en 127.0.0.1).
  • Restricciones de seguridad en la infraestructura que bloquean conexiones externas.

3. Recomendaciones:

  • Usar conexiones seguras con SSL para la base de datos si se permiten accesos remotos.
  • Limitar los permisos del usuario solo a las tablas necesarias para las consultas.
  • Monitorear el uso del usuario de consulta para detectar accesos no autorizados.
  • Si se usa un túnel SSH, establecer la conexión con:
    ssh -L 3306:servidor_mysql:3306 usuario@servidor

4. Ejemplos y Casos de Uso:

  • Escenario 1: Un equipo de analítica necesita extraer datos sobre actividad de usuarios sin modificar registros.
  • Escenario 2: Un desarrollador necesita consultar tablas específicas para crear informes personalizados.
  • Escenario 3: Un auditor de seguridad requiere acceso temporal para verificar integridad de datos.

5. Referencias:

¿Le ha resultado útil este artículo?