Crear un usuario y gestionar los privilegios de acceso en MySQL
Cómo crear usuarios de MySQL y gestionar sus privilegios.
Al trabajar con un servidor dedicado o un VPS, una de las tareas clave es organizar el almacenamiento y la gestión de datos. MySQL es un sistema de gestión de bases de datos que permite estructurar la información de forma eficiente y controlar el acceso de los usuarios. Es adecuado tanto para proyectos pequeños como para aplicaciones de mayor escala, y ofrece seguridad, fiabilidad y facilidad de uso.
MySQL utiliza un sistema de usuarios para controlar el acceso a las bases de datos. Un administrador o usuario autorizado puede conceder a otros usuarios acceso completo o restringido a bases de datos y tablas específicas.
Privilegios de MySQL
Privilegios a nivel de base de datos y tabla:
CREATE— crear bases de datos y tablas.DROP— eliminar bases de datos y tablas.INSERT— añadir filas a las tablas.UPDATE— modificar los datos de las filas. No confundir conALTER, que cambia la estructura de la tabla.DELETE— eliminar filas de las tablas.ALTER— modificar la estructura de las tablas; requiere los privilegiosCREATEeINSERT.SELECT— leer datos de las tablas.GRANT OPTION— conceder o revocar privilegios a otros usuarios (limitado a los privilegios que el propio usuario ya posee).LOCK TABLES— bloquear tablas durante operaciones de escritura.REFERENCES— crear relaciones de clave foránea entre tablas.EVENT— crear, modificar y eliminar eventos del planificador.TRIGGER— crear, modificar y eliminar triggers para las operacionesDELETE,UPDATEeINSERT.INDEX— crear y eliminar índices.CREATE TEMPORARY TABLES— crear tablas temporales durante la duración de una sesión.CREATE VIEW— crear vistas que agreguen datos de otras tablas.SHOW VIEW— ver la consulta SQL que hay detrás de una definición de vista.CREATE ROUTINE— crear procedimientos almacenados.ALTER ROUTINE— modificar procedimientos almacenados.EXECUTE— ejecutar procedimientos almacenados.FILE— acceder a los archivos del servidor disponibles para MySQL y crear archivos en directorios en los que MySQL tiene permisos de escritura.
Privilegios administrativos:
CREATE TABLESPACE— crear, modificar y eliminar tablespaces.CREATE USER— crear, modificar y eliminar usuarios de MySQL.PROCESS— ver información sobre los hilos activos del servidor.PROXY— iniciar sesión como otro usuario para comprobar sus derechos de acceso.RELOAD— ejecutar el comandoFLUSHpara vaciar la caché de MySQL.REPLICATION CLIENT— ejecutarSHOW MASTER STATUS,SHOW SLAVE STATUSySHOW BINARY LOG.REPLICATION SLAVE— permitir que los servidores réplica reciban actualizaciones del servidor primario.SHOW DATABASES— listar todas las bases de datos del servidor.SHUTDOWN— apagar el servidor MySQL.SUPER— derechos administrativos ampliados: terminar procesos de otros usuarios, modificar variables globales del sistema, gestionar el logging y la replicación.ALL— todos los privilegios disponibles exceptoGRANT OPTION.
Nuestros servicios y productos
Crear un usuario
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Por defecto, el nuevo usuario no tiene privilegios sobre ninguna base de datos.
Conceder privilegios
Conceder todos los privilegios sobre todas las bases de datos y tablas:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
Conceder privilegios específicos sobre una base de datos o tabla concreta:
GRANT [privilege type] ON [database].[table] TO '[username]'@'localhost';
Usa * en lugar del nombre de una base de datos o tabla para aplicar los privilegios a todos.
Tras realizar cambios, recarga las tablas de privilegios:
FLUSH PRIVILEGES;
Revocar privilegios
REVOKE [privilege type] ON [database].[table] FROM '[username]'@'localhost';
Eliminar un usuario
DROP USER 'demo'@'localhost';
Verificar la cuenta
Salir de MySQL:
quit
A continuación, volver a iniciar sesión como el nuevo usuario:
mysql -u [username] -p
Ayuda
¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!