首页 文章

无法在MySQL 5.6中创建用户

提问于
浏览
2

我想创建一个用户,它将是我的classicmodels数据库中的管理员 . 我希望我的管理员用户可以创建其他用户帐户并仅将它们分配给classicmodels数据库 . 我已经完成了以下步骤:

  • 以root身份登录

  • 创建用户admin @ '%'由'qwerty'标识;

  • 授予classicmodels . * to admin @ '%' with grant option的所有权限;

  • 刷新权限;

  • admin @ '%'的show grants结果:

授予使用权利 *.* 至'admin' @ '%'通过密码识别
在经典模型上授予所有特权 . *至'admin' @ '%' WITH GRANT OPTION

现在以管理员身份登录:

  • 使用classicmodels;

  • 创建用户user1 @ '%'由'qwerty'标识;
    ERROR 1227(42000):拒绝访问;您需要(至少一个)此操作的CREATE USER权限

我没有看到,我在哪里做错了 . 当我以root身份登录时,我已在步骤3中为管理员授予了所有权限 . 提前致谢 .

1 回答

  • 2

    您已为特定而非全局的数据库(模式)授予了所有权限 .

    运行以下查询并检查结果 .

    SELECT * FROM `mysql`.`db` WHERE `User` = 'admin' AND `Host` = '%';
    SELECT * FROM `mysql`.`user` WHERE `User` = 'admin' AND `Host` = '%';
    

    13.7.1.2 CREATE USER语法......要使用此语句,您必须具有全局CREATE USER权限或mysql数据库的INSERT权限 . ......

    UPDATE

    13.7.1.4 GRANT语法... CREATE TABLESPACE,CREATE USER,FILE,PROCESS,RELOAD,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHUTDOWN和SUPER权限是管理性的,只能全局授予 . ...

    您需要执行以下操作:

    • 以root身份登录

    • GRANT CREATE USER ON *.* TO 'admin'@'%';

    • FLUSH PRIVILEGES;

    mysql> SHOW GRANTS FOR 'admin'@'%';
    +------------------------------------------------------------------------------------------------------------+
    | Grants for admin@%                                                                                         |
    +------------------------------------------------------------------------------------------------------------+
    | GRANT CREATE USER ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*AA1420F182E88B9E5F874F6FBE7459291E8F4601' |
    | GRANT ALL PRIVILEGES ON `classicmodels`.* TO 'admin'@'%' WITH GRANT OPTION                                 |
    +------------------------------------------------------------------------------------------------------------+
    2 rows in set (0,00 sec)
    

相关问题