2011-10-06 15 views
10

Tengo una base de datos donde me gustaría que los usuarios puedan crear nuevos usuarios. Eso se puede lograr a través de concesión de crear USUARIO de la siguiente manera:¿Cómo puedo "otorgar crear usuario" como usuario no root?

grant create user on *.* to foo; 

Esto funciona muy bien y foo puede crear usuarios. Mi problema es que la línea anterior funciona si se ejecuta como root, pero no funciona si se ejecuta como un usuario normal, incluso si dicho usuario ya tiene el privilegio CREATE USER.

En resumen, los usuarios normales no pueden delegar la capacidad de crear usuarios. He estado buscando a lo largo y ancho de cualquier privilegio particular que necesita para poder hacer esto, y estoy empezando a pensar que es algo que solo root puede hacer, aunque no he encontrado evidencia de esto en la documentación de MySQL.

La pregunta: ¿cómo puedo permitir que un usuario normal permita a los usuarios nuevos crear usuarios?

Respuesta

7

intenta ejecutar la consulta después de la concesión:

FLUSH PRIVILEGES; 
8

Ambas respuestas fueron útiles - He utilizado una combinación de ambos y parece haber funcionado.

Como root (administrador es un usuario normal):

mysql> grant create user on *.* to admin with grant option; 
Query OK, 0 rows affected (0.00 sec) 

mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

Como administrador (recuerde, él es un usuario normal):

mysql> grant create user on *.* to foo with grant option; 
Query OK, 0 rows affected (0.00 sec) 

Muchas gracias.

4
-- Create username user 

GRANT ALL PRIVILEGES ON `tshirtshop`.* 
     TO 'username'@'localhost' IDENTIFIED BY 'password' 
     WITH GRANT OPTION; 
Cuestiones relacionadas