Problema al crear usuario

publicado por: user73709

Estoy intentando crear un usuario mediante este comando grant:

GRANT ALL ON usuario.* to [email protected] IDENTIFIED BY 'contrasena';

El problema es que no reconoce el fin de las comillas, por lo que reconoce que no se ha terminado de ejecutar.
Si pongo otras comillas para que se cierre y se ejecute da error.

solución

Como planteaba en el comentario que le realicé esta dando permiso a un usuario, el cual aun no esta creado, primero debe crear el usuario:

CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'clave';

Intente esto para darle acceso a la base de datos dbPrueba:

GRANT ALL PRIVILEGES ON dbPrueba.* To 'usuario'@'localhost';

Luego, para volver a cargar los permisos recién asignados, ejecute:

FLUSH PRIVILEGES;

Ejemplo en una linea:

CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'clave'; GRANT ALL PRIVILEGES ON baseDatos.* To 'usuario'@'localhost' IDENTIFIED BY 'clave'; FLUSH PRIVILEGES;

Uso:

  • GRANT: Este es el comando utilizado para crear usuarios y otorgar derechos a bases de datos, tablas, etc.

  • ALL PRIVILEGES: Esto le dice que el usuario tendrá todos los privilegios estándar. Sin embargo, esto no incluye el privilegio de usar el comando GRANT.

  • dbPrueba.* Esta instrucción MySQL para aplicar estos derechos para su uso en toda la base de datos dbPrueba. Puede reemplazar el * con nombres de tabla específicos o guardar rutinas si lo desea.

  • TO 'usuario'@'localhost': Es el nombre de usuario de la cuenta de usuario que está creando. Nota: debe tener las comillas simples allí. ‘localhost’ le dice a MySQL de qué hosts se puede conectar el usuario. Si solo lo quiere de la misma máquina, use localhost

  • IDENTIFIED BY 'clave': Como habrás adivinado, esto establece la contraseña para ese usuario.

Actualización:

Compruebe los permisos que el comando anterior emitió para ese usuario ejecutando el siguiente comando.

SHOW GRANTS FOR 'usuario'@'localhost'

En los comentarios me dice que aunque se cree no lo deja acceder, intente crear el usuario una ves este logeado como root

$ mysql -u root -p -e "grant all privileges on baseDatos.* to
`{usuario}`@`{localhost}` identified by '{clave}'; flush privileges;"

ignore la opción -p , si el usuario de mysql no tiene contraseña o simplemente presione el botón Enter para omitir.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *