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:

¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)