用户被拒绝使用CREATE命令?

38
show grants for charm@'localhost';

---------------------+
| Grants for charm@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'charm'@'localhost' IDENTIFIED BY PASSWORD '*EDD1CD76B1331E363B2BAED3F0B7EAF28559FBEWD' |
| GRANT ALL PRIVILEGES ON `charmstyle_com`.`charmstyle_com` TO 'charm'@'localhost' 

我使用了

grant all on charmstyle_com to charm@'localhost' IDENTIFIED BY 't1q4gytrur';
flush privileges;

然后我导入数据库,它显示一个错误:

   ERROR 1142 (42000) at line 29: CREATE command denied to user 'charm'@'localhost' for table 'adminnotification_inbox'
1个回答

52
你只授权给用户对“charmstyle_com”数据库内的“charmstyle_com”表的权限。你可能想要授予对“charmstyle_com”中所有表格的权限(或至少是“adminnotification_inbox”表)。

您授予用户的权限仅限于“charmstyle_com”数据库中的“charmstyle_com”表。您可能想要授予对“charmstyle_com”中所有表格(或至少是“adminnotification_inbox”表)的权限。

 GRANT ALL PRIVILEGES ON `charmstyle_com`.* TO 'charm'@'localhost' 

或者说

 GRANT ALL PRIVILEGES ON `charmstyle_com`.`adminnotification_inbox` 
     TO 'charm'@'localhost' 

至少在我的情况下,权限只有在我重新使用相应的用户登录后才被应用;也许这是需要添加到回答中的内容。 - Philipp Ludwig
1
(在MySQL中)执行帐户管理语句(授予、撤销、设置密码等)会立即重新加载授权表。如果您直接修改授权表(例如通过插入、更新等),则需要手动将其加载到内存中。但是,对表/列的更改会立即生效。对数据库的更改需要使用“use <db_name>”进行刷新-请参见:https://dev.mysql.com/doc/mysql-security-excerpt/8.0/en/privilege-changes.html - scibuff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接