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