热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL数据库安全权限控制管理思想

web账户授权实战案例a.生产环境主库用户的账号授权:GRANTSELECT,INSERT,UPDATE,DELETEONblog.*TO

web账户授权实战案例a.生产环境主库用户的账号授权:GRANT SELECT,INSERT,UPDATE,DELETE ON blog.*TO

web账户授权实战案例
a.生产环境主库用户的账号授权:
GRANT SELECT,INSERT,UPDATE,DELETE ON blog.*TO 'blog'@10.0.0.%' identified by 'oldboy456';
b.生产环境从库用户的授权:
GRANT SELECT ON blog.*TO 'blog'@'10.0.0.%'identified by 'oldboy456';
当然从库除了做SELECT 的授权外,,还可以加read-only等只读参数。

2.4产环境读写分离账户设置
给开发人员的读写分离用户设置,除了IP必须要不同外,我们尽量为开发人员使用提供方便。因此,读写分离的地址,除了IP不同外,账号,密码,端口等看起来都是一样的,这才是人性化的设计,体现了运维或DBA人员的专业。
主库(尽量提供写服务):blog oldboy456 ip:10.0.0.179 port 3306
从库(今提供读服务): blog oldboy456 ip:10.0.0.180 port 3306
提示: 两个账号的权限是不一样的
提示:从数据库的设计上,对于读库,开发人员应该设计优先连接读库,如果读库没有,超时后,可以考虑主库,从程序设计上来保证提升用也要根据主库的繁忙程度来综合体验,具体情况都是根据业务项目需求来抉择


3,数据库客户端访问控制
1.更改默认mysql client 端口,如phpadmin 管理端口为9999,其他客户端也是一样的
2:数据库web client端统一部署在1-2台不对外服务Server上,限制ip,及9999端口只能从内网访问。
3.不做公网域名解析,用host实现访问或者内部IP
4phpadmin站点目录独立所有其他站点根目录外,只能由指定的域名或ip地址访问。
5.限制使用web连接的账号管理数据库,根据用户角色设置指定账号访问。
6按开发及相关人员根据职位角色分配管理账号
7:设置指定账号访问(apache/nginx验证+mysql用户两个登录限制)
8.统一所有数据库账号登录入口地址。禁止所有开发私自上传phpadmin等数据库管理等
9开通vpn,跳板机,内部IP管理数据库
系统层控制
1限制或禁止开发人员ssh root 管理,通过sudo细化权限,使用日志审计
2对phpadmin端config等配置文件进行读写权限控制
3:取消费指定服务器的所有phpadmin web 连接端
4.禁止非管理人员管理有数据库web client端的服务器的权限。
5读库分业务读写分离
细则补充:对数据库的select 等大量测试,统计,备份等操作,要在不对外提供select的单独从库执行
主从架构生产环境从服务器分业务拆分使用案例:
M-->s1==对外部用户提供服务(浏览帖子,浏览博客,浏览文章)
-->s2==>对外部用户提供服务(浏览帖子,浏览博客,浏览文章)
-->s3==>对外部用户提供服务(浏览帖子,浏览博客,浏览文章)
-->s2==>对内部用户提供服务(后台访问,脚本任务,数据分析,开发人员浏览)
-->s5==>数据库备份服务(开启从服务器binlog功能,可实现增量备份及恢复)

本文永久更新链接地址

推荐阅读
author-avatar
王文波玉龙_946
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有