Asegurar la base de datos MySQL con permisos de usuario limitados

Asegurar la base de datos MySQL con permisos de usuario limitados

MySQL es uno de los sistemas de gestión de bases de datos relacionales de código abierto más populares utilizados por los desarrolladores de todo el mundo. Sin embargo, con su popularidad viene un riesgo significativo de amenazas de seguridad, como los ataques de inyección de SQL. Por lo tanto, asegurar su base de datos MySQL es fundamental para proteger los datos confidenciales y evitar el acceso no autorizado. Una forma efectiva de hacerlo es implementando permisos limitados de usuario.

Los permisos de usuario limitados ayudan a restringir el acceso a los datos dentro de la base de datos otorgando privilegios específicos a usuarios individuales. Al otorgar solo los privilegios necesarios a un usuario, puede evitar que realicen acciones dañinas en la base de datos. En este artículo, exploraremos cómo asegurar su base de datos MySQL con permisos de usuario limitados.

Comprender los permisos de los usuarios de MySQL

Los permisos de usuario de MySQL se definen mediante un conjunto de privilegios que determinan qué acciones puede realizar un usuario en la base de datos. Algunos de los privilegios comunes incluyen:

  • SELECCIONAR: Este privilegio permite a los usuarios recuperar datos de las tablas.
  • INSERTAR: Este privilegio permite a los usuarios agregar nuevos datos a las tablas.
  • ACTUALIZAR: Este privilegio permite a los usuarios modificar los datos existentes en las tablas.
  • BORRAR: Este privilegio permite a los usuarios eliminar los datos de las tablas.
  • Opción de subvención: Este privilegio permite a los usuarios otorgar o revocar los privilegios de otros usuarios.

Creación de un usuario con permisos limitados

Para crear un nuevo usuario con permisos limitados, siga estos pasos:

  1. Conéctese a su base de datos MySQL utilizando un cliente MySQL como MySQL Workbench o la herramienta de línea de comandos MySQL.

    Ejecute el siguiente comando para crear un nuevo usuario:

    Crear el usuario 'nombre de usuario'@'localhost' identificado por 'contraseña';
    1Crear el usuario 'nombre de usuario'@'localhost' identificado por 'contraseña';

    Reemplazar nombre de usuario y contraseña con su nombre de usuario y contraseña deseados.

  2. Otorgar privilegios específicos al nuevo usuario utilizando el siguiente comando: otorgar seleccionar, insertar, actualizar en database_name.table_name a 'username'@'localhost';
    1SECURSE SELECCIONAR, INSERTAR, ACTUALIZAR EN DATABASE_NAME.table_name a 'username'@'localhost';

    Reemplazar nombre de la base de datos y nombre de la tabla con la base de datos y los nombres de la tabla apropiados. Este comando otorga el SELECCIONAR, INSERTAR, y ACTUALIZAR privilegios al usuario para la tabla especificada.

  3. Para revocar un privilegio de un usuario, use el siguiente comando: revocar privilegio_name en database_name.table_name de 'username'@'localhost';
    1Revocar privilege_name en database_name.table_name de 'username'@'localhost';

    Reemplazar privilegio_name con el nombre de privilegio apropiado y nombre de la base de datos y nombre de la tabla con la base de datos y los nombres de la tabla apropiados.

Uso de vistas para limitar el acceso de los usuarios

Otra forma de limitar el acceso de los usuarios a datos confidenciales es mediante el uso de vistas. Las vistas son tablas virtuales que contienen datos de una o más tablas en una base de datos. Puede usar vistas para limitar el acceso de los usuarios a columnas o filas específicas de datos dentro de una tabla.

Para crear una vista, use el siguiente comando:

Crear vista View_name como seleccionar column_name de table_name donde condición;
1Crear vista View_name como seleccionar column_name de table_name donde condición;

Reemplazar View_name, column_name, nombre de la tabla, y condición con los valores apropiados. Este comando crea una nueva vista que incluye solo las columnas y filas de datos especificadas de la tabla original.

Luego puede otorgar a los usuarios acceso a la vista utilizando la misma CONCEDER comando como antes:

Otorgar seleccionar en database_name.ver_name a 'username'@'localhost';
1Otorgar seleccionar en database_name.ver_name a 'username'@'localhost';

Conclusión

Asegurar su base de datos MySQL con permisos de usuario limitados es un paso esencial para prevenir el acceso no autorizado y la protección de los datos confidenciales de los ataques de inyección SQL. Al otorgar solo los privilegios necesarios a los usuarios y usar vistas para limitar el acceso a datos confidenciales, puede ayudar a mantener segura su base de datos MySQL. También es importante monitorear regularmente una actividad sospechosa y actualizar su software MySQL a la última versión para mantenerse protegido contra posibles amenazas de seguridad.