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
的用法,写脚本授权也方便,后期好维护。