为什么我的mysql不会授予用户权限?

时间:2015-12-29 02:47:35

标签: mysql mysqli

奇怪的是,似乎我的mysql不允许创建具有特定数据库访问权限的用户。使用MySQL Workbench:

CREATE USER 'testUser'@'localhost' IDENTIFIED BY 'thepasswordhere';
GRANT ALL PRIVILEGES ON testDatabaseName TO 'testUser'@'localhost' WITH GRANT OPTION;
SHOW GRANTS;

我没有看到任何提及已创建用户的授予权限。这解释了为什么我得到mysqli::mysqli(): (28000/1045): Access denied for user 'testUser'

我错过了哪一步?更新:即使我输错了用户名,我仍然会受到影响的0行成功:GRANT ALL PRIVILEGES ON testDatabaseName TO 'testkUser'@'%' WITH GRANT OPTION;所以我觉得我的本地mysql出了问题。关于修复的任何想法?

1 个答案:

答案 0 :(得分:1)

CREATE USER 'testUser'@'localhost' IDENTIFIED BY 'thepasswordhere';
GRANT ALL PRIVILEGES ON testDatabaseName.* TO 'testUser'@'localhost' WITH GRANT OPTION;
SELECT sql_grants FROM common_schema.sql_show_grants;

改变了什么?我只是在数据库名称之后添加了.*。这是必要的,因此用户可以访问数据库中的所有表。

同样对于最新的mysql,我相信你需要在使用grant时输入用户密码。

如下所示:

CREATE USER 'testUser'@'localhost' IDENTIFIED BY 'thepasswordhere';
GRANT ALL PRIVILEGES ON testDatabaseName.* TO testUser@localhost IDENTIFIED BY 'pass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SELECT sql_grants FROM common_schema.sql_show_grants;

迈克尔在问题评论中提到:

  

SHOW GRANTS FOR 'testUser'@'localhost'; ...否则,SHOW GRANTS;   显示您的权限 - 与帐户关联的权限   目前已登录。