【问题标题】:MySQL: Why can't user with ALL PRIVILEGES create table? [duplicate]MySQL:为什么不能拥有 ALL PRIVILEGES 的用户创建表? [复制]
【发布时间】:2017-04-20 02:43:11
【问题描述】:

我正在尝试做正确的事情 (?),而不是一直以 root 身份运行 MySQL。因此,我创建了一个用户 'jonathan'@'localhost',其中列出了以下权限:

mysql> SHOW GRANTS FOR CURRENT_USER;
+-------------------------------------------------------------------------+
| Grants for jonathan@localhost                                           |
+-------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'jonathan'@'localhost'                            |
| GRANT ALL PRIVILEGES ON `sampledb`.`sampledb` TO 'jonathan'@'localhost' |
+-------------------------------------------------------------------------+
2 rows in set (0.00 sec)

但是,当我这样做时:

mysql> use sampledb;
Database changed

接着是:

mysql> CREATE TABLE Person ( 
    ->     id int NOT NULL AUTO_INCREMENT,
    ->     name VARCHAR(100),
    ->     address VARCHAR(200),
    ->     birthdate DATE,
    ->     PRIMARY KEY (id)
    -> );
ERROR 1142 (42000): CREATE command denied to user 'jonathan'@'localhost' for table 'person'

上面显示CREATE command denied。为什么这不起作用?我不应该拥有“所有特权”并且不包括CREATE吗?

【问题讨论】:

  • @Cyclone 惊人的重复发现 exactly 相同的特定表问题。

标签: mysql


【解决方案1】:

您是否通过运行以下命令在GRANT 之后刷新了 MySQL 的权限?

FLUSH PRIVILEGES;

【讨论】:

  • 是的,我已经做到了
  • 我实际上不认为我能做到SHOW GRANTS FOR CURRENT_USER 如果不是因为那么我猜它不会出现在那里?此外,我完全可以登录这一事实表明冲洗工作......
【解决方案2】:

您是否在授权声明后刷新了权限?

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2021-03-18
    • 2019-10-27
    相关资源
    最近更新 更多