2011-10-06 17 views
10

Mam bazę danych, w której chciałbym, aby użytkownicy mogli tworzyć nowych użytkowników. Jest to możliwe do uzyskania przez GRANT CREATE USER w następujący sposób:Jak "przyznać użytkownikowi tworzenie" jako użytkownik inny niż root?

grant create user on *.* to foo; 

To działa świetnie, a foo może tworzyć użytkowników. Mój problem polega na tym, że powyższa linia działa, jeśli działa jako root, ale nie działa, jeśli działa jako zwykły użytkownik, nawet jeśli taki użytkownik ma już uprawnienie CREATE USER.

Podsumowując, zwykli użytkownicy nie mogą delegować możliwości tworzenia użytkowników. Szukałem daleko i szerokiego zakresu szczególnych przywilejów, które są ci potrzebne, i zaczynam myśleć, że jest to coś, co może zrobić tylko root, chociaż nie znalazłem na to dowodów w dokumentacji MySQL.

Pytanie: w jaki sposób mogę zezwolić zwykłemu użytkownikowi na tworzenie nowych użytkowników przez nowych użytkowników?

Odpowiedz

7

Spróbuj uruchomić kwerendę po dotacji:

FLUSH PRIVILEGES; 
8

Obie odpowiedzi były użyteczne - użyłem kombinacji obu i wydaje się, że pracował.

Jako root (admin jest normalny użytkownik):

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) 

jako admin (należy pamiętać, że jest to normalny użytkownik):

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

Dziękuję bardzo.

4
-- Create username user 

GRANT ALL PRIVILEGES ON `tshirtshop`.* 
     TO 'username'@'localhost' IDENTIFIED BY 'password' 
     WITH GRANT OPTION; 
Powiązane problemy