【原创】SQL审核系统
前言
应公司dba的需求,做了一个sql审核并可以执行、记录的系统,整个系统有三种角色:
DBA(需要管理员手动登记)
运维人员(需要管理员手动登记)
开发人员(默认注册后用户)
权限分配如下:
一些功能展示
先要感谢前任武大神留下的前端模板,在后续的开发节省了大量的时间,我也就拿过来直接用了。
由于是在公司使用的代码,源码不能开源,下边是一些展示截图,后续会把这个系统涉及到的一些自认为关键的知识点整理出来,分享一部分代码。
- 登录界面
- 注册界面
- 忘记密码
注册、忘记密码这块可以通过邮箱拿到一个验证码,然后通过验证码来进行验证,后边博客会详细介绍这块代码的实现。
生成随机验证码的部分参考我之前的博客http://www.cnblogs.com/caseast/p/4797930.html ,验证码插件部分 - 登录后的首页展示
这个是权限最大的DBA用户的页面,开发、运维会略有不同,功能要少一些 都是傻瓜式的操作,确认sql即为dba审核,审核后运维才可以在生产上执行。另外还专门为dba提供了一个预发布环境,用于上线前,DBA可以现在预发布环境跑一遍sql,之后再通过审核。逻辑图如下:
- 提交新增sql
会对开发提交的sql做一个正则匹配,不同的方向包含的库不同,如果提交的语句使用的库名不在方向列表中,会进行提示,另外如果sql中有一些危险语法,也会做初级的判断,不允许提交。 - sql高亮提示
- 变更流程展示
- 执行过程展示
执行完毕后会在已上线SQL日志中进行展示,启动的任务由celery+redis异步进行分发处理 - 执行结果展示
支持多条件联合搜索
总结
目前这套系统已经部署上线,投入使用了,比起之前的审核系统,主要加入了较全面的日志记录和预发布功能。部分代码分析还请等待后边的博客。
【原创】SQL审核系统的更多相关文章
- 中小团队快速构建SQL自动审核系统
SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证.为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Incep ...
- SQL审核 Inception 中小团队快速构建SQL自动审核系统
SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证.为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Incep ...
- SQL Server 系统数据库恢复
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/故障恢复/master 概述 SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关 ...
- inception 自动化sql审核
##概念: Inception是一款自动化运维的利器,有别与现在各个公司使用的方式,使用Inception,将会给DBA带来最大的便利性,将DBA从繁冗的工作中解放出来,做一些更多的自动化工作,或者从 ...
- SQL Server系统函数:系统信息函数
原文:SQL Server系统函数:系统信息函数 1.会话id,服务器信息.用户信息 select @@SPID, --返回当前连接的会话ID:SPID @@servername, --SQL Ser ...
- SQL Server系统函数:字符串函数
原文:SQL Server系统函数:字符串函数 1.字符转化为ASCII,把ASCII转化为字符,注意返回的值是十进制数 select ASCII('A'),ASCII('B'),ASCII('a') ...
- SQL Server系统函数:日期函数
原文:SQL Server系统函数:日期函数 1.返回当前日期和时间 select GETDATE() '当前日期-精确到33毫秒' select GETUTCDATE() 'UTC日期和时间-精确到 ...
- SQL Server系统函数:元数据函数
原文:SQL Server系统函数:元数据函数 1.列的长度.列名 --列的长度 select COL_LENGTH('dbo.wct', --表名 'wcid') --列名 --列名 select ...
- SQL Server系统函数:类型转换函数
原文:SQL Server系统函数:类型转换函数 1.基本的转化 SELECT CAST(2008 as varchar(4)) + ' year!' SELECT CONVERT(varchar(4 ...
随机推荐
- 完美解决 Linux 下 Sublime Text 中文输入
首先,我参考了好几篇文章,都是蛮不错的,先列出来: sublime-text-imfix:首先推荐这个方法,最简单,但是在我的系统上有些问题.可用这个的强烈推荐用这个 完美解决 Linux 下 Sub ...
- Hbuilder开发HTML5 APP之侧滑菜单
1.思路: 其时有2个WebView,一个main是用来装主页面,一个menu是用来装菜单(为提高性能,菜单项是采用了预加载方式的,预加载时为了避免和主页面争夺资源,采用延时加载,例如: //plus ...
- .NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长
一个 asp.net core 站点,之前运行在Linux 服务器上,运行一段时间后有时站点会挂掉,在日志中记录很多“EMFILE too many open files”的错误: Microsoft ...
- Lesson 5 No wrong numbers
Text Mr.James Scott has a garage in Silbury and now he has just bought another garage in Pinhurst. P ...
- Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)
Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上) 网络嗅探,是监听流经本机网卡数据包的一种技术,嗅探器就是利用这种技术进行数据捕获和分析的软件. 编写嗅探器,捕获数据是前置功能, ...
- 在浏览器的背后(二) —— HTML语言的语法解析
当你看到这篇文章意味着我辜负了@教主的殷切期望周末木有去约会,以及苏老师@我思故我在北京鼓楼的落井下石成功了…… 本文demo powered by 已经结婚的@老赵的不再维护的wind.js 物是人 ...
- avascript中的this与函数讲解
徐某某 一个半路出家的野生程序员 javascript中的this与函数讲解 前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大 ...
- layout
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一.
在这里一下讲解着三个的安装和配置, 是因为solr需要使用tomcat和IK分词器, 这里会通过图文教程的形式来详解它们的安装和使用.注: 本文属于原创文章, 如若转载,请注明出处, 谢谢.关于设置I ...
- java笔记——Java关键字static、final使用小结
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...