Derechos y privilegios de usuarios MySQL en el panel de control del alojamiento
Descripción del procedimiento para asignar permisos a los usuarios de MySQL en el panel de control cPanel.
Las bases de datos (MySQL) son una entidad para almacenar información en forma de tablas. Para que las bases de datos ajenas no estén accesibles a todos los usuarios del servidor, existe un sistema de usuarios para estas bases de datos. El acceso a cualquier base de datos puede ser asignado por el administrador (o por un usuario autorizado) a otro usuario, y puede ser completo o parcialmente restringido.
Todos los datos de sus bases se almacenan en forma de tablas conectadas lógicamente entre sí, a las que se accede mediante el lenguaje de consultas SQL. MySQL es un sistema de distribución libre, es decir, no es necesario pagar por su uso. Además, es un SGBD rápido, fiable y, sobre todo, fácil de usar, perfectamente adecuado para proyectos de tamaño no demasiado grande.
Privilegios para usuarios de MySQL
A continuación se enumeran los privilegios disponibles en el SGBD MySQL, con su descripción. Los últimos privilegios son de nivel administrador y se indican explícitamente solo como referencia. La información completa sobre los derechos/privilegios está disponible en la documentación para desarrolladores de MySQL:
CREATE — permite crear nuevas bases de datos y tablas
DROP — permite eliminar bases de datos o tablas
INSERT — permite añadir filas a una tabla.
UPDATE — permite modificar el contenido de las filas de una tabla. No confundir con ALTER, que permite modificar la estructura de la propia tabla (número de filas/columnas, tipos de columnas).
DELETE — lo contrario de INSERT — permite eliminar filas de una tabla.
ALTER — permite modificar la estructura de una tabla. Requiere los privilegios CREATE e INSERT.
SELECT — permite la lectura (visualización de filas) de las tablas mediante selecciones por columnas y/o por criterios aritméticos y lógicos.
GRANT OPTION — permite asignar (o revocar) derechos específicos a un determinado usuario. Solo es posible conceder/revocar los derechos que el propio asignador posee.
LOCK TABLES — bloquea la tabla durante las modificaciones manuales (administración), para que los datos en su interior no puedan cambiar de forma natural durante el flujo de trabajo.
REFERENCES — permite crear vínculos entre tablas mediante una clave externa.
EVENT — otorga el derecho a crear/modificar/eliminar tareas para el planificador
TRIGGER — permite crear/modificar/eliminar triggers (vinculados a determinadas tablas) que realizan acciones adicionales durante las operaciones DELETE, UPDATE o INSERT.
INDEX — el privilegio otorga el derecho a añadir/eliminar índices en las tablas. Los índices se asignan manualmente y permiten ahorrar tiempo en la búsqueda de filas.
CREATE TEMPORARY TABLES — permite crear tablas temporales durante la sesión.
CREATE VIEW — permite crear una vista en forma de tabla que no existe físicamente como entidad única y contiene únicamente datos de otras tablas. Por ejemplo, en esta vista se pueden reunir determinados datos agrupados de tres tablas (mediante el operador SELECT); en la práctica, los datos recopilados solo harán referencia a los datos de esas 3 tablas y constituirán una unión que no necesita tabla propia.
SHOW VIEW — permite comprobar con qué consulta (de qué datos está compuesta) fue creada una determinada vista definida mediante CREATE VIEW
CREATE ROUTINE — permite crear un procedimiento, es decir, un conjunto de comandos SQL.
ALTER ROUTINE — permite modificar un procedimiento creado con CREATE ROUTINE.
EXECUTE — permite invocar los procedimientos preparados.
FILE — proporciona acceso de lectura a cualquier archivo del servidor al que MySQL tenga acceso, así como acceso para crear archivos en los directorios en los que MySQL tenga permisos de escritura.
CREATE TABLESPACE (admin) — permite crear/modificar/eliminar tablespaces. Este espacio es de naturaleza lógica y no está relacionado con la estructura de la base de datos ni con el esquema. Declara la ubicación de los objetos de la base de datos en los soportes físicos y se utiliza para optimizar el sistema de base de datos.
CREATE USER (admin) — permite crear/modificar/renombrar/eliminar usuarios de bases de datos.
PROCESS (admin) — permite el acceso a información sobre los hilos (procesos) que se ejecutan en el servidor.
PROXY (admin) — permite iniciar sesión como otro usuario. Lo utiliza el administrador para verificar/depurar los derechos de acceso del usuario deseado.
RELOAD (admin) — permite el uso del operador FLUSH, que limpia la caché de MySQL
REPLICATION CLIENT (admin) — permite ejecutar SHOW MASTER STATUS, SHOW SLAVE STATUS y SHOW BINARY LOG.
REPLICATION SLAVE (admin) — este privilegio es necesario para los usuarios del servidor de base de datos esclavo, de modo que el servidor pueda conectarse al servidor maestro como esclavo. Sin este privilegio, los servidores esclavos no podrán solicitar actualizaciones de bases de datos y tablas al servidor maestro.
SHOW DATABASES (admin) — permite ejecutar la instrucción SHOW DATABASES. Los usuarios que no dispongan de este privilegio solo podrán ver las bases de datos sobre las que tengan algún tipo de derecho.
SHUTDOWN (admin) — este privilegio permite ejecutar la instrucción SHUTDOWN, que detiene el servidor MySQL.
SUPER (admin) — privilegio que otorga el derecho a numerosas operaciones:
- permite terminar procesos pertenecientes a otros usuarios
- modificar variables de sistema globales
- activar/desactivar el registro de eventos (logging)
- realizar actualizaciones incluso cuando las variables de sistema tienen establecido el permiso de solo lectura
- iniciar/detener la replicación en los servidores esclavos
ALL (admin) — al usuario que obtiene este privilegio se le asignan automáticamente todos los derechos dentro del nivel de privilegio (todos los privilegios posibles en función del contexto de concesión). En este caso, el único privilegio que no se asigna es GRANT OPTION.
Asignación de privilegios a usuarios de MySQL en el panel de control
En la página principal de cPanel, ve a «Bases de datos → Bases de datos MySQL»:

Todas las operaciones con bases de datos MySQL, usuarios de bases de datos y sus permisos se realizan en este menú.

Si no tienes ninguna base de datos ni usuario, créalos en las secciones correspondientes de la página:
Crea un usuario:

La sección Usuarios actuales se actualizará:

Para asignar permisos a un usuario concreto sobre una base de datos concreta, localiza en la página la sección Añadir usuario a la base de datos y añade el usuario deseado a la base de datos deseada:

Tras añadir el usuario a la base de datos, se abrirá un cuadro de diálogo para la asignación de privilegios:

El botón «Todos los derechos» es equivalente al privilegio ALL descrito al comienzo de esta guía y asignará al usuario todos los derechos posibles en el contexto de su pertenencia a un determinado grupo de usuarios a nivel de todo el servidor MySQL.
Tras confirmar los cambios realizados, se producirá una redirección a la página de confirmación de que los derechos indicados han sido concedidos, y la sección Bases de datos actuales en la página de gestión de bases de datos y usuarios de MySQL se actualizará:

Ayuda
¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!