问题:

如何设置一个用户,几个表的只读权限,以及其余表的alter/insert/delete权限?

MySQL 授权 - 如何在不同的表上设置用户权限
查看更多教程 https://on  itroad.com

解决方法

这可以使用 MySQL 授权来实现,因为 MySQL 确实允许在表级别允许/撤销特权。
通常,数据库管理员首先使用 CREATE USER 创建帐户,然后使用 GRANT 定义其权限和特征。
例如:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost'; GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;

所有可能的权限都可以在在线手册的授予权限部分找到。
这同样适用于此处提到的存储过程特权。

注意:不支持以下语法:

GRANT INSERT, DELETE, ALTER, UPDATE ON *.myTableName TO 'myUser'@'%';

这意味着不可能在所有现有数据库上指定相同的表名。

日期:2020-09-17 00:11:14 来源:oir作者:oir