想要创建一个mysql用户,该用户可以创建新的数据库用户

想要创建一个mysql用户,该用户可以创建新的数据库用户,mysql,mariadb,Mysql,Mariadb,我正在创建一个SAAS网站,每个新帐户的创建都应该有: 根据我的php代码动态创建一个新数据库 一个新的MySQL用户从我的PHP代码中动态创建,并被授予对新数据库的权限 我的问题是:如何创建一个有权限执行这些操作的MySQL用户(创建db、创建用户、授予权限) 但需要注意的是:我希望这个MySQL用户不能显示或操作任何其他非他创建的数据库 注意:我有一个具有WHM访问权限的服务器。允许名为userguy的新用户在数据库db上创建其他用户 创建用户 CREATE USER 'userguy'

我正在创建一个SAAS网站,每个新帐户的创建都应该有:

  • 根据我的php代码动态创建一个新数据库
  • 一个新的MySQL用户从我的PHP代码中动态创建,并被授予对新数据库的权限
我的问题是:如何创建一个有权限执行这些操作的MySQL用户(创建db、创建用户、授予权限)

但需要注意的是:我希望这个MySQL用户不能显示或操作任何其他非他创建的数据库


注意:我有一个具有WHM访问权限的服务器。

允许名为userguy的新用户在数据库db上创建其他用户

创建用户

CREATE USER 'userguy'@'%' IDENTIFIED BY 'password';
他需要重装全球权利

GRANT CREATE USER, RELOAD  ON *.* TO 'userguy'@'%';
那你想给他什么样的权利

GRANT EXECUTE, SELECT, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES  ON `db`.* TO 'userguy'@'%' WITH GRANT OPTION;
最后冲水

FLUSH PRIVILEGES;
这应该可以完成任务

更新:
对不起,我没有仔细阅读这个问题(怪咖啡)。如果用户还应该创建新数据库,那么他还需要全局创建权限,并且为了为他创建的数据库创建用户,他还需要创建用户

GRANT CREATE, CREATE USER, SELECT, RELOAD  ON *.* TO 'userguy'@'%';

我认为不需要全局授予特权

我在以下链接中找到了问题的主要答案:

通过使用: 授予
testuser%
上的所有权限*到“testuser”@“%”

这将允许testuser从testuser_uu开始创建数据库,并对其拥有所有特权

他也不会拥有其他数据库的特权。 我可以授予他创建用户权限


这就是问题所在。

不,此用户将无法创建数据库,因此此答案不正确。@如果您阅读第一行“使名为userguy的新用户能够在数据库数据库上创建其他用户”,则阴影“…创建、创建用户、选择、重新加载就足够了。”