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

Gig*_*igi 10 mysql

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

grant create user on *.* to foo;
Run Code Online (Sandbox Code Playgroud)

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

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

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

Gig*_*igi 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)
Run Code Online (Sandbox Code Playgroud)

作为管理员(记住,他是普通用户):

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

非常感谢.


And*_*kov 6

尝试在授予后运行查询:

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)


小智 5

为了能够授予GRANT其他用户权限,必须创建 MySQL 用户WITH GRANT OPTION

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


小智 5

-- Create username user

GRANT ALL PRIVILEGES ON `tshirtshop`.*
      TO 'username'@'localhost' IDENTIFIED BY 'password'
      WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)