允许MySQL用户授予自己对新数据库的权限

时间:2011-08-11 14:20:10

标签: mysql privileges

我有一个MySQL用户,我们称之为Tom。 Tom具有全局CREATE和SHOW DATABASES权限,具有'GRANT'选项。 基于每个数据库为用户分配SELECT,INSERT,UPDATE和DELETE权限。但是,在Tom创建新数据库之后,尽管具有全局GRANT选项,但他无法设置其SELECT等权限。 错误是(可预测):

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 =]

2 个答案:

答案 0 :(得分:2)

您无法授予您没有的权限。 Tom需要具有全局SELECT,INSERT,UPDATE和DELETE权限才能将其授予其他人。

答案 1 :(得分:2)

你做得对。这是设计的。但是,您可以做的是在参考手册中写的: “MySQL允许您为不存在的数据库或表授予权限。对于表,要授予的权限必须包括CREATE权限。此行为是设计使然,旨在使数据库管理员能够准备用户帐户和权限对于稍后要创建的数据库或表。“

http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-privileges