

新闻资讯
技术学院定期审查MySQL权限需制度化自动化,覆盖全局、数据库、表/列级权限及账户状态,用SQL快速生成清单,通过脚本+定时任务固化审计,审查后须清理失效账户、收紧越权配置、记录变更依据。
定期审查 MySQL 权限不是一次性的操作,而是需要制度化、自动化的维护流程。核心在于“查得全、看得清、改得准、留得下”——即全面发现权限配置、清晰识别风险项、精准调整冗余或越权设置,并保留可追溯的审计记录。
权限审查不能只看 mysql.user 表,要覆盖多层级权限结构:
SUPER、GRANT OPTION、FILE、SHUTDOWN 等高危权限,这些可能被用于提权或数据导出mysql.db 中对敏感库(如 information_schema、sys、业务核心库)的非必要授权mysql.tables_priv 和 mysql.columns_priv 是否存在过度细化但实际已废弃的授权Account_locked、password_expired、max_connections 等安全属性是否合规每次人工登录后,可直接运行以下组合查询,5 秒内输出关键信息:
SELECT User, Host, Account_locked, password_expired, Super_priv, Grant_priv, File_priv FROM mysql.user WHERE account_locked = 'N';
SELECT CONCAT('SHOW GRANTS FOR ''', User, '''@''', Host, ''';') AS cmd FROM mysql.user WHERE User != '' ORDER BY User;SELECT DISTINCT User, Host FROM mysql.db WHERE User NOT IN (SELECT User FROM mysql.user);
把审查动作固化为可重复、可归档的运维动作:
audit_mysql_privs.sh),连接数据库并导出四类权限表快照 + SHOW GRANTS 结果到带日期的文件夹中Super_priv = 'Y' 且 Host = '%' 的账户,提示“需人工复核”crontab 设置每周日凌晨 2 点执行:0 2 * * 0 /opt/dba/audit_mysql_privs.sh >> /var/log/mysql/audit.log 2>&1
发现不合规项只是开始,闭环处理才真正提升安全性:
DROP USER 'xxx'@'host';
GRANT ALL ON *.* 改为按需授予,例如仅 SELECT, INSERT ON finance.invoice
系统中登记操作人、时间、原因(如“配合 XX 系统上线新增读写权限”),不可仅靠口头确认