MySQL 的权限系统是数据库安全的第一道防线,grant 语句就是你手里的那把钥匙。MySQL 5.X 版本下,它用法挺多的,控制得也挺细,不管是整库授权、单表授权,还是列级、存储过程级别,都能搞定。
普通用户该给啥权限?像SELECT、INSERT、UPDATE这些,日常操作就够用了。开发人员呢,CREATE、ALTER、DROP这些建表删表权限少不了。想开最大权限?直接用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 权限管理里是个基础但关键的技能,适合经常调用户权限的你。如果你对权限管控比较敏感,建议再看看这篇讲精细权限控制的文章,配合使用更灵活。