我想创建一个用户,该用户将是我的classicmodels数据库中的管理员。我希望我的管理员用户可以创建其他用户帐户并仅将它们分配给classicmodels数据库。我已经完成了以下步骤:
通过密码识别*.*
给'管理员'@'%'授予使用权
授予经典模特的所有特权。*''admin'@'%'WITH GRANT OPTION
现在以管理员身份登录:
我没有看到,我在哪里做错了。当我以root身份登录时,我已在步骤3中为管理员授予了所有权限。提前谢谢。
答案 0 :(得分:2)
您已为特定而非全局的数据库(架构)授予了所有权限。
运行以下查询并检查结果。
SELECT * FROM `mysql`.`db` WHERE `User` = 'admin' AND `Host` = '%';
SELECT * FROM `mysql`.`user` WHERE `User` = 'admin' AND `Host` = '%';
...
...要使用此语句,您必须拥有全局CREATE USER 特权或mysql数据库的INSERT特权。 ...
...
<强>更新强>
...
CREATE TABLESPACE,CREATE USER,FILE,PROCESS,RELOAD,REPLICATION 客户,复制从,显示数据库,关闭和超级 特权是管理性的,只能在全球范围内授予。
...
您需要执行以下操作:
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)