Tengo este:

mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| root@%         |
+----------------+
1 row in set (0.00 sec)

mysql> SELECT USER();
+------------------+
| USER()           |
+------------------+
| root@CQ2404LA-PC |
+------------------+
1 row in set (0.00 sec)

mysql>
mysql> GRANT ALL PRIVILEGES ON `Company`.* TO 'TheUser'@'%' IDENTIFIED BY PASS
WORD '*3814FFAFF303C7DBB5511684314B57577D754FF9';
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'Company'

Access denied for user ‘root’@’%’ para la base de datos de «la Compañía»,

Ahora revisando los privilegios de root tengo:

mysql> show grants for 'root'@'localhost';
+-------------------------------------------------------------------------------
---------------------------------------------------------+
| Grants for root@localhost
                                                         |
+-------------------------------------------------------------------------------
---------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*158
FB31F24156B52B2408974EF221C5100001544' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
                                                         |
+-------------------------------------------------------------------------------
---------------------------------------------------------+
2 rows in set (0.00 sec)

Antes, he probado (a nivel Local) Y Funciona bien!.

Ahora De Forma Remota Privilegios:

mysql> show grants for 'root'@'%';
+-------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
---------------------------------------------------------------------------+
| Grants for root@%



                                                                           |
+-------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
---------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS,
 FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES,
 LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW
VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'root'@'%' IDENTIFIED
 BY PASSWORD '*158FB31F24156B52B2408974EF221C5100001544' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'%' WITH GRANT OPTION

No funciona!!!, Creo que se debe trabajar porque: «ON *.* A ‘root’@’%’«

Buscando la diferencia:
‘root’@’%’ no CREAR espacios de TABLA, EVENTOS y DESENCADENAR

mysql> SELECT Host,     Event_priv,     Trigger_priv,   Create_tablespace_priv,
authentication_string   FROM mysql.user WHERE USER = "root";
+-----------+------------+--------------+------------------------+--------------
---------+
| Host      | Event_priv | Trigger_priv | Create_tablespace_priv | authenticatio
n_string |
+-----------+------------+--------------+------------------------+--------------
---------+
| localhost | Y          | Y            | Y                      |
         |
| %         | N          | N            | N                      | NULL
         |
+-----------+------------+--------------+------------------------+--------------
---------+
2 rows in set (0.01 sec)

mysql>

Pero, creo que no es la raíz del problema…

Tal vez La solución va a ser, para usar: GRANT ALL PRIVILEGES ON *.* A ‘root’@’%’, pero creo que «todos los privilegios» tienen otra cosa que «una cantidad de privilegios».

  • Como se puede ver el usuario [email protected]% tiene privilegios para conceder a otros usuarios, pero no está Funcionando. ———————————————————————————————————————————————————– ON *.* A ‘root’@’%’ WITH GRANT OPTION … ———————————————————————————————————————————————————–
InformationsquelleAutor | 2013-12-07

1 Comentario

  1. 1

    El uso de GRANT, debe tener la GRANT OPTION privilegio, y usted debe tener los privilegios que otorga.

    http://dev.mysql.com/doc/refman/5.6/en/grant.html

    Si usted no espera «todos los privilegios,» no puede conceder a «todos los privilegios.»

    Arreglar el [email protected]% de los usuarios de la falta de privilegios y el problema será resuelto, aunque realmente debería entender lo que cada uno privilegio ¿y conceder sólo las más adecuadas para cada usuario.

    • Gracias, pero se puede ver que —mostrar subvenciones para ‘root’@’%’;— se ha WITH GRANT OPTION. Sólo la diferencia con —mostrar subvenciones para ‘root’@’localhost’;— son cuatro los privilegios (Event_priv, Trigger_priv, Create_tablespace_priv, authentication_string) de acuerdo a mi pregunta…
    • Según la referencia: > La instrucción GRANT otorga privilegios a MySQL cuentas de usuario. GRANT también sirve para especificar otra cuenta características tales como el uso de conexiones seguras y límites en el acceso a los recursos del servidor. El uso de SUBVENCIÓN, usted debe tener la OPCIÓN GRANT privilegio, y usted debe tener los privilegios que otorga. >’root’@’%’ tiene privilegios sobre todos (*.*) Base de datos en MySQL;
    • No, No es así. Usted mismo ha dicho, ‘root’@’%’ no tiene CREATE TABLESPACE, EVENT o TRIGGER, que son parte de ALL PRIVILEGES. Una cuenta que no tenía de todos los privilegios … no GRANT ALL PRIVILEGES. GRANT OPTION sólo permite dar lo que usted, usted mismo, poseen: «usted debe tener los privilegios que se conceden»
    • Gracias, usted me ayude a saber de mi error…

Dejar respuesta

Please enter your comment!
Please enter your name here