创建好用户之后,还需要给它授予合适的权限。权限过大有安全风险,权限过小又可能导致业务无法运行,因此权限管理的核心是“最小必要授权”。
授予权限通常使用 GRANT:
GRANT SELECT, INSERT, UPDATE
ON shop.*
TO 'myuser'@'localhost';
这表示给用户 myuser@localhost 授予 shop 数据库下所有表的查询、插入和更新权限。
如果授予全部权限,可以写成:
GRANT ALL PRIVILEGES
ON *.*
TO 'myuser'@'%'
WITH GRANT OPTION;
不过这种权限很大,通常只适合管理账号,不适合普通业务账号。
撤销权限使用 REVOKE:
REVOKE INSERT, UPDATE
ON shop.*
FROM 'myuser'@'localhost';
撤销后,该用户将不再拥有这些对应权限。
查看某个用户权限最常见的方式是:
SHOW GRANTS FOR 'myuser'@'localhost';
它会显示当前用户拥有的授权语句,便于快速确认权限情况。
权限管理的常见动作就是:GRANT 赋权、REVOKE 撤权、SHOW GRANTS 查看结果。数据库安全的重点不在“能不能授予”,而在“是否只授予了必要权限”。