我有一个MySQL用户,我们称他为Tom。Tom具有全局CREATE和SHOW DATABASES权限,并具有'GRANT‘选项。每个数据库都会为用户分配SELECT、INSERT、UPDATE和DELETE权限。然而,在Tom创建了一个新的数据库之后,他不能设置他的SELECT等特权,尽管他有一个全局的GRANT选项。错误是(可预测的):
CREATE DATABASE `my_new_db`; -- this is fine
GRANT SELECT , INSERT , UPDATE , DELETE ON `my_new_db` . * TO 'Tom'@'%';
*Access denied for user 'Tom'@'%' to database 'my_new_db'*这是通过PHP完成的,但我怀疑这有多大不同。
谁来告诉我我哪里做错了!Ta =]
发布于 2011-08-11 23:02:50
你不能授予你没有的特权。Tom需要具有全局SELECT、INSERT、UPDATE和DELETE权限,才能将这些权限授予其他用户。
发布于 2011-08-11 23:03:49
你做得很对。这是设计好的。但是,您可以执行的操作在《参考手册》中写道:MySQL使您可以授予对不存在的数据库或表的权限。对于表,要授予的权限必须包括CREATE权限。此行为是经过设计的,其目的是使数据库管理员能够为以后要创建的数据库或表准备用户帐户和权限。
http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-privileges
https://stackoverflow.com/questions/7027542
复制相似问题