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

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

  • 从我的php代码动态为其创建的新数据库,
  • 一个新的MySQL用户,该用户从我的PHP代码动态创建,并获得了对新数据库的特权。

我的问题是:如何创建具有执行这些操作特权的MySQL用户(创建数据库,创建用户,授予特权)。

但是需要注意的重要一点:我希望该MySQL用户不能显示或操纵他创建的任何其他数据库。

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

评论
  • quo_et
    quo_et 回复

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

    创建用户

    CREATE USER 'userguy'@'%' IDENTIFIED BY 'password';
    

    他需要重提全球权利

    GRANT 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;
    

    这应该做的工作。