授予 MySQL 用户 CREATE TABLE 权限

Grant CREATE TABLE permission to MySQL User

我有一个在一些用户之间共享的数据库,我想管理他们对此的权限。

我想授予创建新 table 和访问(select、插入、更新、删除)的权限 table 当然,对于不这样做的用户对数据库有完全权限(只有他 SELECT 可以访问一些 table)。

所以,我执行了这个查询:

GRANT CREATE ON eh1 TO user1

然后,当我用那个用户登录并尝试创建一个新的 table 时,我得到了这个错误:

1142 - CREATE command denied to user 'user1'@'localhost' for table 'folan'

这里有什么问题?我该怎么做?

更新

通过将命令更改为以下部分解决了问题:

GRANT CREATE ON eh1.* TO user1

现在还有一个问题,就是user1不能select或者插入新创建的table。原因无可厚非,但是有什么办法可以解决吗?

谢谢

遵循this,正确的语法是

GRANT CREATE ON eh1.* TO user1

用eh1一个数据库。

如果您不使用“.*”,您的数据库将被视为 table。

按以下使用-

GRANT CREATE ON eh1.* TO user1@'%' IDENTIFIED BY 'user1_password';

注意:“%”将提供所有 ip 的访问权限,因此我们应该提供对特定 ip 而不是所有 ip 的权限,因此请将“%”更改为任何 ip,例如“191.161.3.1”

如果用户需要 select/insert/update/delete/create 权限,则语法将为 -

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON eh1.* TO user1@'%' IDENTIFIED BY 'user1_password';

根据用户要求更新:

GRANT CREATE ON eh1.* TO user1@'%' IDENTIFIED BY 'user1_password';
GRANT SELECT, INSERT, UPDATE ON eh1.table1 TO user1@'%';
GRANT SELECT, INSERT, UPDATE ON eh1.table2 TO user1@'%';