MySQL应用级权限设计核心是为每个应用创建独立账号并授予最小必要权限。需按应用命名账号、限制IP来源、精确授权到库表列、禁用高危权限、定期审查与自动化管理。
MySQL 应用级权限设计的核心,是为每个应用创建独立账号,并仅授予其实际需要的最小权限,避免共用 r
oot 或高权限账号,从源头降低误操作和越权访问风险。
不同应用(如订单系统、用户中心、报表服务)应使用不同的数据库账号,账号名建议体现应用用途,例如 app_order_rw、app_user_ro、app_report_select。避免多个应用共享同一账号,否则无法精准审计或快速隔离问题。
'%'% 通配(除非确有跨网段需求)权限粒度要落到具体库、表甚至列,而非直接 GRANT ALL ON *.*。读写分离、只读报表、后台管理等角色应严格区分。
绝大多数业务应用完全不需要 DROP、ALTER、CREATE、FILE、SUPER 等权限。这些权限应保留在 DBA 或部署账号中。
GRANT DROP, ALTER, CREATE, FILE, PROCESS, SUPER, REPLICATION CLIENT 等mysql 系统库任何访问权限(除非极特殊运维需求)GRANT ... WITH GRANT OPTION,防止权限扩散权限不是“设一次就不管”。上线新模块、人员变动、应用下线时,都需同步更新权限配置。
SHOW GRANTS FOR 'xxx' 核查账号权限last_login IS NULL 或超 90 天无活动)标记并评估是否回收