我有一个数据库,我希望用户能够创建新用户。这可以通过GRANT CREATE USER实现,如下所示:
grant create user on *.* to foo;
这很好用,foo可以创建用户。我的问题是如果以root身份运行上面的行,但是如果以普通用户身份运行则不起作用,即使此类用户已具有CREATE USER权限。
简而言之,普通用户无法委派创建用户的能力。我一直在寻找能够做到这一点的任何特殊权限,并且我开始认为只有root才能做到这一点,尽管我在MySQL文档中没有找到任何证据。
问题:如何让普通用户让新用户创建用户?
答案 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