允许MySQL用户获得GRANT权限

时间:2014-08-05 18:58:39

标签: mysql database

我创建的用户 app_root 由具有有限权限的密码标识。此用户应该只能创建带前缀的数据库,创建新用户,并授予新用户访问数据库的权限。所以这就是我在做的事情。

CREATE USER app_root@localhost IDENTIFIED BY 'password';
GRANT CREATE USER ON *.* TO app_root@localhost WITH GRANT OPTION;
GRANT CREATE ON `myapp\_%`.* TO app_root@localhost WITH GRANT OPTION; 
FLUSH PRIVILEGES;

用户正式创建。现在我使用app_root用户登录mysql并执行以下命令:

CREATE DATABASE test;

它按预期失败,因为数据库名称不包含 myapp _ 前缀。

CREATE DATABASE myapp_test;
CREATE USER myapp_test@localhost IDENTIFIED BY 'ABC';

数据库和用户都已成功创建。但是如果我执行grant语句,就会发生错误。

GRANT ALL PRIVILEGES ON myapp_test.* TO myapp_test@localhost;

它生成ERROR 1044 (42000): Access denied for user 'app_root'@'localhost' to database 'myapp_test'。谁能告诉我我的做法有什么问题?

MySQL版本 - 服务器版本:5.5.37-0ubuntu0.14.04.1(Ubuntu)

修改 - 根据建议,我授予 app_root 用户所有权限。但它仍然没有改变任何东西。

GRANT ALL ON `myapp\_%`.* TO app_root@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

0 个答案:

没有答案