我有一个在一些用户之间共享的数据库,我想管理他们对此的权限。
我想授予创建新表和访问(选择、插入、更新、删除)该表的权限,当然,授予对数据库没有完全权限的用户(只有他有 SELECT 访问权限)一些表)。
所以,我执行了这个查询:
GRANT CREATE ON eh1 TO user1
然后,当我用那个用户登录并尝试创建一个新表时,我得到了这个错误:
1142 - CREATE command denied to user 'user1'@'localhost' for table 'folan'
这里有什么问题?我该怎么做?
更新
通过将命令更改为这样部分解决了问题:
GRANT CREATE ON eh1.* TO user1
现在还有一个问题,就是user1不能select或者insert到新建的表中。原因无可厚非,但有没有办法解决呢?
谢谢
最佳答案
按以下方式使用-
GRANT CREATE ON eh1.* TO user1@'%' IDENTIFIED BY 'user1_password';
注意:'%' 将提供从所有 ip 的访问权限,因此我们应该提供对特定 ip 而不是所有 ip 的权限,因此将 '%' 更改为任何 ip,如 '191.161.3.1'
如果用户需要选择/插入/更新/删除/创建权限,则语法为 -
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@'%';
关于mysql - 授予 MySQL 用户 CREATE TABLE 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352901/