痛点
- 业务线或项目组对运维发起资源申请流程不规范,导致反复沟通效率低下。
- 公司开发同事随意连接生产数据库,生产数据库无法审计回溯,安全问题难以控制解决。
工程介绍
- 前后端分离项目,前端使用vue2+element,后端使用django drf框架编写。
- 其他组件:redis celery mysql
功能演示
登录页
- 使用企业邮箱登录
首页
- 首页,点击“协作平台URL”按钮,可查看到企业内所有协作平台的URL,并一键直达。
- 管理员权限可以怎删改,普通权限只能查看。
资源申请
- 选择业务线,填写必要信息。
- 填写之后,会自动显示其他必要信息,可多选。
- 不同的选项可触发显示不同的必要依赖项。
- 表单填写完毕,最后点击提交申请按钮,运维可邮件收到对应申请信息。运维可查看对应的申请详情,并可直接拒绝或开通交付。
运维对对应申请进行交付,填写必要信息,例如服务器信息,OSS信息等。可中间暂存,最后检查交付内容无问题,点击确定按钮,对应的该资源申请人等会收到交付内容邮件。
Mysql操作申请(生产数据库)
- 填写必要信息之后,点击“申请访问”按钮。运维会收到申请邮件,运维会根据申请理由采取拒绝或通过。申请人后续会收到对应内容邮件。
- 填写的用户名密码错误,申请会失败,页面提示不允许申请。
申请
执行
- 运维审核通过之后,申请人在对应入口,点击“开始操作”按钮,打开mysql操作面板填写sql执行。
- 选择数据库,填写sql语句,点击“提交执行”按钮。
- web页面最多展示3000条数据,全量数据需要从飞书群通知消息的“SQL返回结果”下载。
- sql都需要审核,可以关闭审核滑块,但是,危险sql是强制走mysql审核功能的。
- 群里领导可以实时查看群里员工对生产数据库的操作情况,执行了什么sql,得到了什么结果集。
- 超时的sql申请不会显示。
审计回溯落库
- 通过对应入口,可以对员工进行搜索,执行了哪些历史SQL。
便捷申请
- 运维可以提前预置一些项目连接名,研发同事直接选择即可,不需要填写用户名密码。更加便捷安全。
Mysql数据库比对
- 可以选择数据库进行结构比对,选择数据库,点击“比对”按钮,会在飞书群下发比对差异sql;
Mysql审核
- 当在sql执行面板点击“提交执行”按钮之后,系统会判断当前sql是否需要走审核流程,判断走审核流程之后,要求申请人填写DBA同事,DBA同事会收到飞书提醒,然后对指定的sql进行审核。审核之后,申请人方可对对应审核ID的sql点击“提交执行”按钮。
- 发起的sql审核申请,可以撤销。
管理
- 运维可以进行管理操作,例如,增删改查运维人员,DBA人员,Mysql的信息录入,Mysql操作记录回溯
后话
- 该项目前后端项目分离,本人独立开发,阶段性记录。