mysql - usted - ¡no posee privilegios para manipular usuarios phpmyadmin




Otorgar** todos** privilegios en la base de datos (7)

He creado la base de datos, por ejemplo 'mydb'.

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH';
GRANT ALL ON mydb.* TO 'myuser'@'%';
GRANT ALL ON mydb TO 'myuser'@'%';
GRANT CREATE ON mydb TO 'myuser'@'%';
FLUSH PRIVILEGES;

Ahora puedo iniciar sesión en la base de datos desde cualquier lugar, pero no puedo crear tablas.

Cómo otorgar todos los privilegios en esa base de datos y en las tablas (en el futuro). No puedo crear tablas en la base de datos 'mydb'. Siempre me sale

CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'

1. Crear la base de datos.

CREATE DATABASE db_name;

2. Crea el nombre de usuario para la base de datos db_name

GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';

3. Usa la base de datos

USE db_name;

4. Finalmente, está en la base de datos db_name y luego ejecuta los comandos como crear, seleccionar e insertar operaciones.


Esta es una pregunta antigua, pero no creo que la respuesta aceptada sea segura. Es bueno para crear un superusuario pero no es bueno si desea otorgar privilegios en una sola base de datos.

grant all privileges on mydb.* to [email protected]'%' identified by 'mypasswd';
grant all privileges on mydb.* to [email protected] identified by 'mypasswd';

% parece no cubrir las comunicaciones de socket, para las que está localhost . WITH GRANT OPTION solo es bueno para el superusuario, de lo contrario suele ser un riesgo para la seguridad.

Espero que esto ayude.


Esto será útil para algunas personas:

Desde la línea de comandos de MySQL:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Lamentablemente, en este punto, newuser no tiene permisos para hacer nada con las bases de datos. De hecho, si el nuevo usuario intenta iniciar sesión (con la contraseña, la contraseña), no podrá acceder al shell de MySQL.

Por lo tanto, lo primero que debe hacer es proporcionar al usuario acceso a la información que necesitarán.

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Los asteriscos en este comando se refieren a la base de datos y la tabla (respectivamente) a las que pueden acceder; este comando específico permite al usuario leer, editar, ejecutar y realizar todas las tareas en todas las bases de datos y tablas.

Una vez que haya finalizado los permisos que desea configurar para sus nuevos usuarios, asegúrese siempre de volver a cargar todos los privilegios.

FLUSH PRIVILEGES;

Sus cambios ahora estarán en efecto.

Para obtener más información: http://dev.mysql.com/doc/refman/5.6/en/grant.html

Si no se siente cómodo con la línea de comandos, puede usar un cliente como MySQL workbench , Navicat o SQLyog


Hola, utilicé este código para tener el superusuario en mysql

GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE,
    CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP,
    EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE,
    LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN,
    SUPER
        ON *.* TO [email protected]'%'
    WITH GRANT OPTION;

y entonces

FLUSH PRIVILEGES;

Para otorgar todos los privilegios en la base de datos: mydb al usuario: myuser , simplemente ejecute:

GRANT ALL ON mydb.* TO 'myuser'@'localhost';

o:

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';

La palabra clave PRIVILEGES no es necesaria.

Además, no sé por qué las otras respuestas sugieren que la IDENTIFIED BY 'password' se ponga al final del comando. Creo que no es necesario.


Pude hacerlo funcionar solo agregando GRANT OPTION , sin que siempre reciba el permiso denegado un error

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON mydb.* TO [email protected] IDENTIFIED BY 'mypasswd';

Funciona para privilegios en el esquema :)

Opcional: después de mypasswd puede agregar WITH GRANT OPTION







mysql-error-1142