2011-10-06 58 views
10

我有一個數據庫,我希望用戶能夠創建新用戶。這可以通過GRANT CREATE USER如下實現:我如何「授予創建用戶」作爲非root用戶?

grant create user on *.* to foo; 

這很好用,foo可以創建用戶。我的問題是,如果以root用戶身份運行上述行,但如果以普通用戶身份運行,即使此用戶已具有CREATE USER權限,也不起作用。

簡而言之,普通用戶不能委派創建用戶的能力。我一直在尋找你需要能夠做到這一點的任何特權,並且我開始認爲這是隻有root可以做的事情,儘管我在MySQL文檔中沒有找到任何證據。

問題:如何讓普通用戶讓新用戶創建用戶?

回答

7

嘗試授權之後運行查詢:

FLUSH PRIVILEGES; 
8

兩個答案是有用的 - 我用這兩者的組合,似乎已經奏效。

,作爲root(admin是一個普通用戶):

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) 

由於管理員(請記住,他是一個普通用戶):

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

太謝謝你了。

4
-- Create username user 

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