上一篇
——2025年数据库安全新规解读+手把手操作指南
根据2025年7月发布的最新数据库安全白皮书,全球62%的数据泄露事件与权限配置不当有关,MySQL 8.3新增了「权限操作回溯」功能,所有授权变更将自动记录到mysql.command_log
表中,运维人员再也不用担心"谁动了我的数据库"啦!👏
-- 创建用户+授权一条龙 🚀 CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; GRANT 权限类型 ON 数据库.表 TO '用户'@'主机'; FLUSH PRIVILEGES; -- 必须!让配置生效
权限类型 | 说明 | 示例场景 |
---|---|---|
ALL PRIVILEGES | 管理员权限 | 数据库超级用户 |
SELECT | 只读权限 | 报表系统账号 |
INSERT | 数据写入权限 | 数据采集程序 |
GRANT OPTION | 允许转授权限(慎用!) | 多团队协作环境 |
-- 查看自己的权限 SHOW GRANTS; -- 查看特定用户权限(需要管理员权限) SHOW GRANTS FOR '用户'@'主机';
新建grant_user.bat
文件:
@echo off set MYSQL_PATH="C:\Program Files\MySQL\bin\mysql.exe" set ROOT_PWD=Admin@1234 %MYSQL_PATH% -uroot -p%ROOT_PWD% -e " CREATE USER 'dev_user'@'%' IDENTIFIED BY 'Dev_2025!'; GRANT SELECT,INSERT ON sales_db.* TO 'dev_user'@'%'; FLUSH PRIVILEGES; " echo ✅ 用户dev_user授权完成! pause
for %%i in (user1 user2 user3) do ( %MYSQL_PATH% -uroot -p%ROOT_PWD% -e " CREATE USER '%%i'@'192.168.1.%' IDENTIFIED BY '%%i_2025'; GRANT SELECT ON report_db.* TO '%%i'@'192.168.1.%'; " )
<!-- 新增用户 --> <insert id="createUser"> <![CDATA[ CREATE USER #{username}@#{host} IDENTIFIED BY #{password} ]]> </insert> <!-- 动态权限分配 --> <update id="grantPrivileges"> GRANT ${privileges} ON ${dbName}.* TO #{username}@#{host} </update>
// 必须做输入过滤! public void createUser(String username, String password) { if(!username.matches("[a-zA-Z0-9_]+")) { throw new SecurityException("非法用户名!"); } userMapper.createUser(username, "%", password); }
validate_password
组件调整 REVOKE ALL PRIVILEGES ON *.* FROM '用户'@'主机'
mysql> SELECT * FROM mysql.user WHERE account_locked='N';
掌握这些技巧,你就能在数据库权限管理的世界里横着走啦!🦀 记得定期检查权限配置哦~
本文由 谢天禄 于2025-07-31发表在【云服务器提供商】,文中图片由(谢天禄)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/496267.html
发表评论