mysql - 授予 MySQL 用户 CREATE TABLE 权限

标签 mysql permissions create-table sql-grant

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

我想授予创建新表和访问(选择、插入、更新、删除)该表的权限,当然,授予对数据库没有完全权限的用户(只有他有 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/

相关文章:

php - while($row = mysql_fetch_array($result)) 对于 "for loop"的等效语法是什么

android - Android 11(R) 中的权限被拒绝问题

mysql - 从包含+ 6500万条记录的Mysql连接创建临时表

mysql - 重命名 SQL 中的列

mysql - 在 MySQL 中删除表

python - 如何让 sqlalchemy.create_engine 与 mysqlconnector 使用 mysql_native_password 进行连接?

mysql - 是否可以为用户设置数据库行级权限?

javascript - 将 Node.js GET/POST 请求更改为 Ajax

甲骨文 PL/SQL : Retrieve list of permissioned procedures for account

Azure CosmosDB 匿名读取访问