MySQL 的权限系统是数据库安全的第一道防线,grant 语句就是你手里的那把钥匙。MySQL 5.X 版本下,它用法挺多的,控制得也挺细,不管是整库授权、单表授权,还是列级、存储过程级别,都能搞定。

普通用户该给啥权限?像SELECTINSERTUPDATE这些,日常操作就够用了。开发人员呢,CREATEALTERDROP这些建表删表权限少不了。想开最大权限?直接用grant all on *.*,一键全开,爽是挺爽的,但注意安全哦!

授权语法其实不复杂,像这样:

grant select, insert on testdb.* to user@'%';
其中user@'%'是用户来源控制,可以指定 IP 段也可以放开。有些项目会用'localhost'来限制登录来源,安全性高一点。

权限作用范围也挺细的,可以只给一个库:testdb.*,也可以单表:testdb.orders,甚至某几列:select(id, name),这就适合那种权限要求比较严格的系统。

记得,授权完别忘了执行flush privileges,不然改了也不生效。另外撤销权限用revoke,结构和grant差不多,用法也比较直觉。

grant 语法在 MySQL 权限管理里是个基础但关键的技能,适合经常调用户权限的你。如果你对权限管控比较敏感,建议再看看这篇讲精细权限控制的文章,配合使用更灵活。