Crear usuario MySQL y otorgar permisos
¿Por qué crear usuarios específicos?
Es una buena práctica de seguridad crear un usuario específico para cada aplicación o base de datos, en lugar de usar root para todo. Esto limita los permisos y reduce el riesgo en caso de compromiso.
Método 1: Desde phpMyAdmin
Paso 1: Acceder a phpMyAdmin
- Ingresá a phpMyAdmin
- Iniciá sesión con un usuario que tenga permisos de administrador (generalmente root)
Paso 2: Ir a Cuentas de usuario
- Hacé clic en la pestaña Cuentas de usuario o User accounts
Paso 3: Agregar nuevo usuario
- Hacé clic en Agregar cuenta de usuario o Add user account
Paso 4: Completar información del usuario
- Nombre de usuario: Ingresá el nombre del usuario (ej:
usuario_app) - Nombre de host: Seleccioná
localhost(para conexiones locales) o%(para conexiones desde cualquier host) - Contraseña: Ingresá una contraseña segura
- Confirmar contraseña: Ingresá la misma contraseña
Paso 5: Otorgar privilegios
Podés otorgar privilegios de dos formas:
Opción A: Privilegios globales
- Marcá los privilegios que querés otorgar globalmente
- Generalmente no se recomienda para usuarios de aplicación
Opción B: Privilegios sobre base de datos específica (recomendado)
- Seleccioná la base de datos en "Base de datos para cuenta de usuario"
- O creá la cuenta primero y luego otorgá privilegios sobre la base de datos
Privilegios comunes:
- ✅ SELECT: Leer datos
- ✅ INSERT: Insertar datos
- ✅ UPDATE: Actualizar datos
- ✅ DELETE: Eliminar datos
- ✅ CREATE: Crear tablas
- ✅ DROP: Eliminar tablas
- ✅ ALTER: Modificar estructura
- ✅ INDEX: Crear índices
Para una aplicación web típica:
- Marcá: SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER
- No marques: DROP (a menos que sea necesario)
Paso 6: Guardar
- Hacé clic en Continuar o Go
Método 2: Desde la terminal
Paso 1: Conectarte a MySQL
mysql -u root -p
Paso 2: Crear el usuario
CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'contraseña_segura';
Ejemplo:
CREATE USER 'usuario_app'@'localhost' IDENTIFIED BY 'MiContraseña123!';
Paso 3: Otorgar privilegios sobre una base de datos
GRANT ALL PRIVILEGES ON nombre_base_de_datos.* TO 'nombre_usuario'@'localhost';
GRANT ALL PRIVILEGES ON mi_webapp.* TO 'usuario_app'@'localhost';
Paso 4: Aplicar cambios
FLUSH PRIVILEGES;
Otorgar privilegios específicos
En lugar de ALL PRIVILEGES, podés otorgar solo los necesarios:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER
ON nombre_base_de_datos.*
TO 'nombre_usuario'@'localhost';
Ejemplo:
GRANT SELECT, INSERT, UPDATE, DELETE
ON mi_webapp.*
TO 'usuario_app'@'localhost';
Esto otorga solo permisos de lectura y escritura, sin poder eliminar tablas.
Permitir conexión desde cualquier host
Si necesitás que el usuario se conecte desde otro servidor:
CREATE USER 'nombre_usuario'@'%' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON nombre_base_de_datos.* TO 'nombre_usuario'@'%';
FLUSH PRIVILEGES;
⚠️ Advertencia: Permitir conexiones desde % (cualquier host) es menos seguro. Solo usalo si es necesario y asegurate de tener un firewall configurado.
Verificar usuarios creados
Para ver todos los usuarios:
SELECT user, host FROM mysql.user;
Para ver los privilegios de un usuario específico:
SHOW GRANTS FOR 'nombre_usuario'@'localhost';
Revocar privilegios
Si necesitás quitar privilegios:
REVOKE ALL PRIVILEGES ON nombre_base_de_datos.* FROM 'nombre_usuario'@'localhost';
FLUSH PRIVILEGES;
O revocar privilegios específicos:
REVOKE DELETE ON nombre_base_de_datos.* FROM 'nombre_usuario'@'localhost';
FLUSH PRIVILEGES;
Eliminar un usuario
Si necesitás eliminar un usuario completamente:
DROP USER 'nombre_usuario'@'localhost';
FLUSH PRIVILEGES;
⚠️ Advertencia: Esto eliminará el usuario y todos sus privilegios permanentemente.
Problemas comunes
Error "Access denied" al crear usuario
- Verificá que tengas permisos de administrador (root)
- Verificá que estés usando el usuario correcto
El usuario no puede conectarse
- Verificá que el nombre de usuario y contraseña sean correctos
- Verificá que el host sea correcto (localhost vs %)
- Verificá que los privilegios estén otorgados correctamente
El usuario no tiene permisos suficientes
- Verificá los privilegios otorgados con SHOW GRANTS
- Otorgá los privilegios necesarios adicionales
Consejos de seguridad
- ✅ Creá un usuario específico para cada aplicación
- ✅ Otorgá solo los privilegios necesarios (principio de menor privilegio)
- ✅ Usá contraseñas fuertes
- ✅ Evitá usar
%como host a menos que sea necesario - ✅ Revisá regularmente los usuarios y sus privilegios
- ✅ Eliminá usuarios que ya no se usen
¿Necesitás ayuda?
Si tenés problemas creando usuarios o configurando permisos, abrí un ticket desde el panel de billing.baires.host o contactanos por soporte.
También podés escribirnos por nuestras redes:
- Instagram: @baires_host
- Discord (soporte activo): https://discord.gg/dzjauatAFN
- Linktree: https://linktr.ee/baires.host