如何“授予创建用户”作为非root用户?

时间:2011-10-06 21:58:36

标签: mysql

我有一个数据库,我希望用户能够创建新用户。这可以通过GRANT CREATE USER实现,如下所示:

grant create user on *.* to foo;

这很好用,foo可以创建用户。我的问题是如果以root身份运行上面的行,但是如果以普通用户身份运行则不起作用,即使此类用户已具有CREATE USER权限。

简而言之,普通用户无法委派创建用户的能力。我一直在寻找能够做到这一点的任何特殊权限,并且我开始认为只有root才能做到这一点,尽管我在MySQL文档中没有找到任何证据。

问题:如何让普通用户让新用户创建用户?

4 个答案:

答案 0 :(得分:9)

这两个答案都很有用 - 我使用了两者的组合,似乎有效。

以root用户身份(管理员是普通用户):

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)

非常感谢你。

答案 1 :(得分:7)

尝试在授予后运行查询:

FLUSH PRIVILEGES;

答案 2 :(得分:5)

-- Create username user

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

答案 3 :(得分:4)

为了能够GRANT其他用户的权限,必须创建一个MySQL用户WITH GRANT OPTION

http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-other-characteristics