MySQL 的权限系统还挺灵活的,想管得细一点,用对了工具事半功倍。用GRANT命令授权,是我比较推荐的一种方式,比起直接改授权表,清晰又不容易搞错。比如你想给某个用户开点权限,让他只能查某张表?一句GRANT SELECT ON db.table TO 'user'@'localhost';就搞定了,权限精确控制,效果还挺不错。

GRANT ALL PRIVILEGES这种全权限命令,也挺常用,适合开发或测试环境。想要指定主机来源、加上WITH GRANT OPTION让用户还能继续授权给别人,语法上都挺直观的。

需要注意,虽然也可以直接往mysql.user表里插数据授权,但不太推荐。除了更容易出错,还得记得FLUSH PRIVILEGES手动刷新,麻烦事不少。

复杂点的场景,比如多库多表权限控制,GRANT依旧能搞定,按库分开授权就行。像这样:

GRANT SELECT, INSERT ON db1.* TO 'custom'@'localhost';
GRANT SELECT ON db2.table1 TO 'custom'@'localhost';
蛮适合多人协作的项目,权限细致分得开,风险也低些。

如果你还在用图形化工具,比如 Navicat,手动点权限总有点不放心。多看看GRANT的用法,写脚本授权也方便,后期好维护。